{"already_in_source_count":0,"candidate_count":182,"cross_major":false,"cve_available":true,"cve_count":0,"cves":[],"duplicate_count":0,"excluded_count":0,"exclusions":[],"from_release":null,"groups":[{"age_days":746,"build":"17.0","changes_count":165,"compatibility_count":17,"content_hash":"7b994321b45cd60ec1abd48e76a6e3181be4c8c23990ba3f2ca6117cbc9ca4bc","date":"2024-09-26","date_text":"2024-09-26","doc_git":"","doc_loaded_at":"2026-09-26T02:56:35.922301","entries":[{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":["2af07e2f7","b4da732fd64"],"commit_groups":[["2af07e2f7"],["b4da732fd64"]],"commits":["2af07e2f7","b4da732fd64"],"cves":[],"db_id":"cc672acc2498ddd239d6c029f970bad5","html":"\u003cp\u003e更改函数，使其在维护操作期间使用安全的\u003ca href=\"/docs/17/runtime-config-client.html#GUC-SEARCH-PATH\"\u003esearch_path\u003c/a\u003e（Jeff Davis）\u003ca href=\"https://postgr.es/c/2af07e2f7\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/b4da732fd64\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这可防止维护操作（\u003ccode\u003eANALYZE\u003c/code\u003e、\u003ccode\u003eCLUSTER\u003c/code\u003e、\u003ccode\u003eCREATE INDEX\u003c/code\u003e、\u003ccode\u003eCREATE MATERIALIZED VIEW\u003c/code\u003e、\u003ccode\u003eREFRESH MATERIALIZED VIEW\u003c/code\u003e、\u003ccode\u003eREINDEX\u003c/code\u003e 或 \u003ccode\u003eVACUUM\u003c/code\u003e）执行不安全的访问。表达式索引和物化视图中使用、且需要引用非默认 schema 的函数，必须在创建函数时指定 search path。\u003c/p\u003e","id":"17.0-d922e984bf9c8012","identity_text":"Change functions to use a safe guc-search-path during maintenance operations (Jeff Davis) This prevents maintenance operations (ANALYZE, CLUSTER, CREATE INDEX, CREATE MATERIALIZED VIEW, REFRESH MATERIALIZED VIEW, REINDEX, or VACUUM) from performing unsafe access. Functions used by expression indexes and materialized views that need to reference non-default schemas must specify a search path during function creation.","part":"migration","patch_ids":["27148e55a756fe36b1e6739f26c8b3c0","b795341e3db72551c1e5eed3aaeee32b"],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":["2af07e2f7","b4da732fd64"],"source_entry_id":"17.0/migration/001","source_hash":"64dff99310ae1cfd4ee409c78454de7b69434337010c91e0c087eba9a4ababe6","source_url":"/docs/release/17.0/#RELEASE-17-MIGRATION","statement_hash":"72d3a43b426e67d74c0baf2ac17235620dd45ed163a055d553de860d03e3cf13","text":"更改函数，使其在维护操作期间使用安全的search_path（Jeff Davis）§ § 这可防止维护操作（ANALYZE、CLUSTER、CREATE INDEX、CREATE MATERIALIZED VIEW、REFRESH MATERIALIZED VIEW、REINDEX 或 VACUUM）执行不安全的访问。表达式索引和物化视图中使用、且需要引用非默认 schema 的函数，必须在创建函数时指定 search path。","title":"更改函数，使其在维护操作期间使用安全的search_path","variants":[],"version":"17.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":["165d581f1","617f9b7d4"],"commit_groups":[["165d581f1"],["617f9b7d4"]],"commits":["165d581f1","617f9b7d4"],"cves":[],"db_id":"6c0e19904987035c8733604999e0c848","html":"\u003cp\u003e限制 \u003ccode\u003eago\u003c/code\u003e 只能出现在 \u003ccode\u003einterval\u003c/code\u003e 值的末尾（Joseph Koshakow）\u003ca href=\"https://postgr.es/c/165d581f1\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/617f9b7d4\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e同时，禁止空 interval 单位出现多次。\u003c/p\u003e","id":"17.0-2ea1268a85e7d7da","identity_text":"Restrict ago to only appear at the end in interval values (Joseph Koshakow) Also, prevent empty interval units from appearing multiple times.","part":"migration","patch_ids":["355ea5318d1f63a817910cdf1504f45f","d49150cfc4dab109d6f8748b4f4f8b04"],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":["165d581f1","617f9b7d4"],"source_entry_id":"17.0/migration/002","source_hash":"c7e922733164fa0a732f25838f27dc020fce3c1ec5663e40046c5cce9f7c8403","source_url":"/docs/release/17.0/#RELEASE-17-MIGRATION","statement_hash":"4e053c43feb5a21ce495ca0f82a0f8473e143508210523c26fbb736ca1fdf21e","text":"限制 ago 只能出现在 interval 值的末尾（Joseph Koshakow）§ § 同时，禁止空 interval 单位出现多次。","title":"限制 ago 只能出现在 interval 值的末尾","variants":[],"version":"17.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":["f691f5b80"],"commit_groups":[["f691f5b80"]],"commits":["f691f5b80"],"cves":[],"db_id":"b34074adfb3aeb3fe6a9be8015e49712","html":"\u003cp\u003e移除服务器变量 \u003ccode\u003eold_snapshot_threshold\u003c/code\u003e（Thomas Munro）\u003ca href=\"https://postgr.es/c/f691f5b80\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e该变量允许 vacuum 移除对正在运行事务而言理论上仍可能可见的行，从而在之后访问时引发“snapshot too old”错误。如果将来找到改进的实现方式，此功能可能会重新加入 \u003cspan\u003ePostgreSQL\u003c/span\u003e。\u003c/p\u003e","id":"17.0-61eed93d43a0c166","identity_text":"Remove server variable old_snapshot_threshold (Thomas Munro) This variable allowed vacuum to remove rows that potentially could be still visible to running transactions, causing \"snapshot too old\" errors later if accessed. This feature might be re-added to PostgreSQL later if an improved implementation is found.","part":"migration","patch_ids":["8c5d8020ab90ccca65a49effd8b21ce0"],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":["f691f5b80"],"source_entry_id":"17.0/migration/003","source_hash":"5a82b8109b6d144744746866ac972043810705dd0189c0edee4dbbdaaab190ca","source_url":"/docs/release/17.0/#RELEASE-17-MIGRATION","statement_hash":"eb3cde61369c330b9e66df8de8f4b1dbeae90bcd57fd1218ce3850e1efcfd027","text":"移除服务器变量 old_snapshot_threshold（Thomas Munro）§ 该变量允许 vacuum 移除对正在运行事务而言理论上仍可能可见的行，从而在之后访问时引发“snapshot too old”错误。如果将来找到改进的实现方式，此功能可能会重新加入 PostgreSQL。","title":"移除服务器变量 old_snapshot_threshold","variants":[],"version":"17.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":["a0363ab7a"],"commit_groups":[["a0363ab7a"]],"commits":["a0363ab7a"],"cves":[],"db_id":"a284710c4e8e15eab0f4741705b57eac","html":"\u003cp\u003e更改 \u003ca href=\"/docs/17/sql-set-session-authorization.html\" title=\"SET SESSION AUTHORIZATION\"\u003e\u003ccode\u003eSET SESSION AUTHORIZATION\u003c/code\u003e\u003c/a\u003e 对初始会话用户超级用户状态的处理方式（Joseph Koshakow）\u003ca href=\"https://postgr.es/c/a0363ab7a\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e新行为基于发出 \u003ccode\u003eSET SESSION AUTHORIZATION\u003c/code\u003e 命令时会话用户的超级用户状态，而不是其连接建立时的超级用户状态。\u003c/p\u003e","id":"17.0-253d40dcc032be94","identity_text":"Change SET SESSION AUTHORIZATION handling of the initial session user's superuser status (Joseph Koshakow) The new behavior is based on the session user's superuser status at the time the SET SESSION AUTHORIZATION command is issued, rather than their superuser status at connection time.","part":"migration","patch_ids":["301cd2650bab634dc780a6ba3c515916"],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":["a0363ab7a"],"source_entry_id":"17.0/migration/004","source_hash":"9f3d6d19c49c1ec62e4d87714e3d313b828647dd9e15902b1e8abf82f52aebb8","source_url":"/docs/release/17.0/#RELEASE-17-MIGRATION","statement_hash":"dd14af4a215b4aa555a4eef2befdad1c9e39a80c16149e7dad092532b873e830","text":"更改 SET SESSION AUTHORIZATION 对初始会话用户超级用户状态的处理方式（Joseph Koshakow）§ 新行为基于发出 SET SESSION AUTHORIZATION 命令时会话用户的超级用户状态，而不是其连接建立时的超级用户状态。","title":"更改 SET SESSION AUTHORIZATION 对初始会话用户超级用户状态的处理方式","variants":[],"version":"17.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":["884eee5bf"],"commit_groups":[["884eee5bf"]],"commits":["884eee5bf"],"cves":[],"db_id":"5f14c9997d29f2b62a899e7940c383cf","html":"\u003cp\u003e移除模拟每数据库用户的功能（Nathan Bossart）\u003ca href=\"https://postgr.es/c/884eee5bf\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e该功能即 \u003ccode\u003edb_user_namespace\u003c/code\u003e，使用得很少。\u003c/p\u003e","id":"17.0-37f1a80c68dbef53","identity_text":"Remove feature which simulated per-database users (Nathan Bossart) The feature, db_user_namespace, was rarely used.","part":"migration","patch_ids":["edfe6268e4c801676c3acf1ddceffaba"],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":["884eee5bf"],"source_entry_id":"17.0/migration/005","source_hash":"88ec7853163fc34a9953d41f7a25aa6663238fbac3188a3a448c1c31b7dac492","source_url":"/docs/release/17.0/#RELEASE-17-MIGRATION","statement_hash":"133f8e4a4ab49ace990b8cad84fe9fe5313becfcdbd2d51a22084268735d7ec8","text":"移除模拟每数据库用户的功能（Nathan Bossart）§ 该功能即 db_user_namespace，使用得很少。","title":"移除模拟每数据库用户的功能","variants":[],"version":"17.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":["cc09e6549"],"commit_groups":[["cc09e6549"]],"commits":["cc09e6549"],"cves":[],"db_id":"166c355517818678d393b7069567ebcc","html":"\u003cp\u003e移除 contrib 扩展 \u003cspan\u003eadminpack\u003c/span\u003e（Daniel Gustafsson）\u003ca href=\"https://postgr.es/c/cc09e6549\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e它曾由现已终止支持的 \u003cspan\u003epgAdmin III\u003c/span\u003e 使用。\u003c/p\u003e","id":"17.0-710e087c1bef4846","identity_text":"Remove adminpack contrib extension (Daniel Gustafsson) This was used by now end-of-life pgAdmin III.","part":"migration","patch_ids":["667f69d4b75688c6317ae5d996a65e38"],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":["cc09e6549"],"source_entry_id":"17.0/migration/006","source_hash":"ad86e2f1db9961ad07f2a20a39ce25e940d3fe8bff8cf4fed136f0900a1b84d7","source_url":"/docs/release/17.0/#RELEASE-17-MIGRATION","statement_hash":"b675830b641f123992566dfa75b7b707a569d5aa68d9cf8407cf6231e92f53ab","text":"移除 contrib 扩展 adminpack（Daniel Gustafsson）§ 它曾由现已终止支持的 pgAdmin III 使用。","title":"移除 contrib 扩展 adminpack","variants":[],"version":"17.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":["d0c28601e"],"commit_groups":[["d0c28601e"]],"commits":["d0c28601e"],"cves":[],"db_id":"686b51dbf857b55e4493e96d25323fb7","html":"\u003cp\u003e在 \u003cspan\u003eWindows\u003c/span\u003e 上移除\u003ca href=\"/docs/17/runtime-config-wal.html#GUC-WAL-SYNC-METHOD\"\u003ewal_sync_method\u003c/a\u003e的 \u003ccode\u003efsync_writethrough\u003c/code\u003e 值（Thomas Munro）\u003ca href=\"https://postgr.es/c/d0c28601e\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e该值在 \u003cspan\u003eWindows\u003c/span\u003e 上与 \u003ccode\u003efsync\u003c/code\u003e 相同。\u003c/p\u003e","id":"17.0-138f57ed29e09c6d","identity_text":"Remove guc-wal-sync-method value fsync_writethrough on Windows (Thomas Munro) This value was the same as fsync on Windows.","part":"migration","patch_ids":["56a99d25aa1cfee9b865ec01242d5be9"],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":["d0c28601e"],"source_entry_id":"17.0/migration/007","source_hash":"74036521b8c1d076fcbe40bcca1989f69e0278d6918f39aad6d1ae3a4e783d96","source_url":"/docs/release/17.0/#RELEASE-17-MIGRATION","statement_hash":"49d753c3c4b4df461d180e9b5c2fa04390d5f29a1619fb7486f3f3642a02e6c0","text":"在 Windows 上移除wal_sync_method的 fsync_writethrough 值（Thomas Munro）§ 该值在 Windows 上与 fsync 相同。","title":"在 Windows 上移除wal_sync_method的 fsync_writethrough 值","variants":[],"version":"17.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":["344afc776"],"commit_groups":[["344afc776"]],"commits":["344afc776"],"cves":[],"db_id":"74f74f51c54e1a4e800cca0d0dbad6e7","html":"\u003cp\u003e更改两个 \u003cacronym\u003eWAL\u003c/acronym\u003e 文件名函数对文件边界的处理方式（Kyotaro Horiguchi, Andres Freund, Bruce Momjian）\u003ca href=\"https://postgr.es/c/344afc776\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e当 \u003cacronym\u003eLSN\u003c/acronym\u003e 位于文件段边界时，\u003ca href=\"/docs/17/functions-admin.html#FUNCTIONS-ADMIN-BACKUP-TABLE\" title=\"表 9.95. 备份控制函数\"\u003e\u003ccode\u003epg_walfile_name()\u003c/code\u003e\u003c/a\u003e 和 \u003ccode\u003epg_walfile_name_offset()\u003c/code\u003e 过去会报告前一个 \u003cacronym\u003eLSN\u003c/acronym\u003e 段号；现在则返回当前的 \u003cacronym\u003eLSN\u003c/acronym\u003e 段。\u003c/p\u003e","id":"17.0-3cd4e0f22454d285","identity_text":"Change file boundary handling of two WAL file name functions (Kyotaro Horiguchi, Andres Freund, Bruce Momjian) The functions pg_walfile_name() and pg_walfile_name_offset() used to report the previous LSN segment number when the LSN was on a file segment boundary; it now returns the current LSN segment.","part":"migration","patch_ids":["7b5ba94e96e769d6dcb87c9b7bd4851c"],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":["344afc776"],"source_entry_id":"17.0/migration/008","source_hash":"4c017a2706ee6af77a5e1375ac9a7b1b5eb78f00b1538a868e611b47f4fe5aa4","source_url":"/docs/release/17.0/#RELEASE-17-MIGRATION","statement_hash":"5d93d9f2dbe498ed1b19a20ae20a3f046e46ab976187bd5ca6490207fe428ffb","text":"更改两个 WAL 文件名函数对文件边界的处理方式（Kyotaro Horiguchi, Andres Freund, Bruce Momjian）§ 当 LSN 位于文件段边界时，pg_walfile_name() 和 pg_walfile_name_offset() 过去会报告前一个 LSN 段号；现在则返回当前的 LSN 段。","title":"更改两个 WAL 文件名函数对文件边界的处理方式","variants":[],"version":"17.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":["c7a3e6b46"],"commit_groups":[["c7a3e6b46"]],"commits":["c7a3e6b46"],"cves":[],"db_id":"d5af5dde274ef58c2321c3ffbaafb5ef","html":"\u003cp\u003e移除已不再需要的服务器变量 \u003ccode\u003etrace_recovery_messages\u003c/code\u003e（Bharath Rupireddy）\u003ca href=\"https://postgr.es/c/c7a3e6b46\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-a946372026bf9605","identity_text":"Remove server variable trace_recovery_messages since it is no longer needed (Bharath Rupireddy)","part":"migration","patch_ids":["d5ea071446bbbe2a671d84cfc0242b19"],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":["c7a3e6b46"],"source_entry_id":"17.0/migration/009","source_hash":"ce9369e2d0211d0cab863f3e49076330052d7966e2ea02a934e31f7e4bf04e2a","source_url":"/docs/release/17.0/#RELEASE-17-MIGRATION","statement_hash":"7aade84d3e7f620e4dd4bef9576c74f25c56e4202dde83bbf2b8df11a4bd7972","text":"移除已不再需要的服务器变量 trace_recovery_messages（Bharath Rupireddy）§","title":"移除已不再需要的服务器变量 trace_recovery_messages","variants":[],"version":"17.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":["78806a950"],"commit_groups":[["78806a950"]],"commits":["78806a950"],"cves":[],"db_id":"9c37cb22d8759b5d26153e1ea221cb69","html":"\u003cp\u003e移除 \u003ca href=\"/docs/17/information-schema.html\" title=\"第 35 章 信息模式\"\u003einformation schema\u003c/a\u003e 列 \u003ccode\u003eelement_types\u003c/code\u003e.\u003ccode\u003edomain_default\u003c/code\u003e（Peter Eisentraut）\u003ca href=\"https://postgr.es/c/78806a950\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-f7c38114100e1337","identity_text":"Remove information schema column element_types.domain_default (Peter Eisentraut)","part":"migration","patch_ids":["30cf237ba9cee48568f30ebbe683b9d0"],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":["78806a950"],"source_entry_id":"17.0/migration/010","source_hash":"5d62346100402b6999b088d94d30476044d2c215e51414a4c8e98f55f4e3ecc2","source_url":"/docs/release/17.0/#RELEASE-17-MIGRATION","statement_hash":"970aa10e9ccfcaf29ec3331161d989c81e2db7eb93ded7baa9e3248d8b60b334","text":"移除 information schema 列 element_types.domain_default（Peter Eisentraut）§","title":"移除 information schema 列 element_types.domain_default","variants":[],"version":"17.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":["15d5d7405"],"commit_groups":[["15d5d7405"]],"commits":["15d5d7405"],"cves":[],"db_id":"06ce9cce2fa546a03a191e28b7bd30ee","html":"\u003cp\u003e更改 \u003cspan\u003e\u003ca href=\"/docs/17/pgrowlocks.html\" title=\"F.29. pgrowlocks — 显示表的行锁信息\"\u003epgrowlocks\u003c/a\u003e\u003c/span\u003e 的锁模式输出标签（Bruce Momjian）\u003ca href=\"https://postgr.es/c/15d5d7405\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-fe778327ca66f6d8","identity_text":"Change pgrowlocks lock mode output labels (Bruce Momjian)","part":"migration","patch_ids":["e330c9f64ec04f17a9e8c6bf697de7ac"],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":["15d5d7405"],"source_entry_id":"17.0/migration/011","source_hash":"bf48956f4ebcb4404280648ff4274a48c3ddb1d6379aebcb646aeb60412ced22","source_url":"/docs/release/17.0/#RELEASE-17-MIGRATION","statement_hash":"9ba42b8852d0d181fb7574e0a5324e18eeef4be71dd49f40491f0f940508798b","text":"更改 pgrowlocks 的锁模式输出标签（Bruce Momjian）§","title":"更改 pgrowlocks 的锁模式输出标签","variants":[],"version":"17.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":["74604a37f"],"commit_groups":[["74604a37f"]],"commits":["74604a37f"],"cves":[],"db_id":"14ab5d3b90b1ea855319d818eb76eab5","html":"\u003cp\u003e从 \u003ca href=\"/docs/17/monitoring-stats.html#MONITORING-PG-STAT-BGWRITER-VIEW\" title=\"27.2.14. pg_stat_bgwriter\"\u003e\u003ccode\u003epg_stat_bgwriter\u003c/code\u003e\u003c/a\u003e 中移除 \u003ccode\u003ebuffers_backend\u003c/code\u003e 和 \u003ccode\u003ebuffers_backend_fsync\u003c/code\u003e（Bharath Rupireddy）\u003ca href=\"https://postgr.es/c/74604a37f\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这些字段被认为与 \u003ca href=\"/docs/17/monitoring-stats.html#MONITORING-PG-STAT-IO-VIEW\" title=\"27.2.13. pg_stat_io\"\u003e\u003ccode\u003epg_stat_io\u003c/code\u003e\u003c/a\u003e 中的类似列重复。\u003c/p\u003e","id":"17.0-efce6c2e39fd2d94","identity_text":"Remove buffers_backend and buffers_backend_fsync from pg_stat_bgwriter (Bharath Rupireddy) These fields are considered redundant to similar columns in pg_stat_io.","part":"migration","patch_ids":["abfd4307ea94a77be4159e6d64f933b5"],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":["74604a37f"],"source_entry_id":"17.0/migration/012","source_hash":"cc9214a923cc0764381fcdf9b2515a7e760e37a90a91916169ca50338a9c1050","source_url":"/docs/release/17.0/#RELEASE-17-MIGRATION","statement_hash":"17c3baca41bde637d84c1f675d6329efc1abaac3ea8d7b0059649d57205428f2","text":"从 pg_stat_bgwriter 中移除 buffers_backend 和 buffers_backend_fsync（Bharath Rupireddy）§ 这些字段被认为与 pg_stat_io 中的类似列重复。","title":"从 pg_stat_bgwriter 中移除 buffers_backend 和 buffers_backend_fsync","variants":[],"version":"17.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":["13d00729d"],"commit_groups":[["13d00729d"]],"commits":["13d00729d"],"cves":[],"db_id":"521858489a384102d9e8c61fd916177f","html":"\u003cp\u003e重命名 \u003cspan\u003e\u003ca href=\"/docs/17/pgstatstatements.html\" title=\"F.30. pg_stat_statements — 跟踪 SQL 计划和执行统计信息\"\u003epg_stat_statements\u003c/a\u003e\u003c/span\u003e 的 I/O 块读/写耗时统计列（Nazir Bilal Yavuz）\u003ca href=\"https://postgr.es/c/13d00729d\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e即将 \u003ccode\u003eblk_read_time\u003c/code\u003e 重命名为 \u003ccode\u003eshared_blk_read_time\u003c/code\u003e，并将 \u003ccode\u003eblk_write_time\u003c/code\u003e 重命名为 \u003ccode\u003eshared_blk_write_time\u003c/code\u003e。\u003c/p\u003e","id":"17.0-3bc2316f8ee353e9","identity_text":"Rename I/O block read/write timing statistics columns of pgstatstatements (Nazir Bilal Yavuz) This renames blk_read_time to shared_blk_read_time, and blk_write_time to shared_blk_write_time.","part":"migration","patch_ids":["ab363262e882ed9cfaced4d6c5deda53"],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":["13d00729d"],"source_entry_id":"17.0/migration/013","source_hash":"3f6bc570146409810e5d6cb5f52cf5a0645b03ece5a11f10ab743c38ea6e2c4f","source_url":"/docs/release/17.0/#RELEASE-17-MIGRATION","statement_hash":"7a91b3290978bb385b007e52f8cd2e89093017ee02bdb6ffa835deade60c969f","text":"重命名 pg_stat_statements 的 I/O 块读/写耗时统计列（Nazir Bilal Yavuz）§ 即将 blk_read_time 重命名为 shared_blk_read_time，并将 blk_write_time 重命名为 shared_blk_write_time。","title":"重命名 pg_stat_statements 的 I/O 块读/写耗时统计列","variants":[],"version":"17.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":["012460ee9","4f622503d"],"commit_groups":[["012460ee9"],["4f622503d"]],"commits":["012460ee9","4f622503d"],"cves":[],"db_id":"55cac36d03b238bca53d532c65e1d15f","html":"\u003cp\u003e将 \u003ca href=\"/docs/17/catalog-pg-attribute.html\" title=\"51.7. pg_attribute\"\u003e\u003ccode\u003epg_attribute\u003c/code\u003e.\u003ccode\u003eattstattarget\u003c/code\u003e\u003c/a\u003e 和 \u003ccode\u003epg_statistic_ext\u003c/code\u003e.\u003ccode\u003estxstattarget\u003c/code\u003e 表示默认统计目标的方式更改为 \u003ccode\u003eNULL\u003c/code\u003e（Peter Eisentraut）\u003ca href=\"https://postgr.es/c/4f622503d\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/012460ee9\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-8e45fc51019a9684","identity_text":"Change pg_attribute.attstattarget and pg_statistic_ext.stxstattarget to represent the default statistics target as NULL (Peter Eisentraut)","part":"migration","patch_ids":["4d496fe2fd867ecb3ba5df367b723dd0","5ca9219021d08dfbe06ec44012775182"],"related_changes":[{"db_id":"6092816ce66efe9e474514c27d1edf89","evidence":{"patch_ids":["4d496fe2fd867ecb3ba5df367b723dd0"],"same_day":true},"kind":"related","label":"17.0","source_url":"/docs/release/17.0/#RELEASE-17-UTILITY","title":"为将列设置为默认统计目标添加更清晰的 ALTER TABLE 方法","url":"/docs/compare/?release=17.0#17.0-787ff7a0336bc432","version":"17.0"}],"relations":[{"evidence":{"patch_ids":["4d496fe2fd867ecb3ba5df367b723dd0"],"same_day":true},"rule":2,"target":"6092816ce66efe9e474514c27d1edf89","type":"related"}],"section":"兼容性","section_path":["兼容性"],"source_commits":["012460ee9","4f622503d"],"source_entry_id":"17.0/migration/014","source_hash":"ee9301abc5ba136b5310f2ba247b310e6f05a93b7eeb20e46912a9b9e1105ef2","source_url":"/docs/release/17.0/#RELEASE-17-MIGRATION","statement_hash":"9f8dd36740de6cc9002012a6b84508c090110858b69c66d48fe1b23559ef1ef2","text":"将 pg_attribute.attstattarget 和 pg_statistic_ext.stxstattarget 表示默认统计目标的方式更改为 NULL（Peter Eisentraut）§ §","title":"将 pg_attribute.attstattarget 和 pg_statistic_ext.stxstattarget 表示默认统计目标的方式更改为 NULL","variants":[],"version":"17.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":["f696c0cd5"],"commit_groups":[["f696c0cd5"]],"commits":["f696c0cd5"],"cves":[],"db_id":"2fc1ec23c0360d980ba0f5693d4723e3","html":"\u003cp\u003e将 \u003ca href=\"/docs/17/catalog-pg-collation.html\" title=\"51.12. pg_collation\"\u003e\u003ccode\u003epg_collation\u003c/code\u003e.\u003ccode\u003ecolliculocale\u003c/code\u003e\u003c/a\u003e 重命名为 \u003ccode\u003ecolllocale\u003c/code\u003e，并将 \u003ca href=\"/docs/17/catalog-pg-database.html\" title=\"51.15. pg_database\"\u003e\u003ccode\u003epg_database\u003c/code\u003e.\u003ccode\u003edaticulocale\u003c/code\u003e\u003c/a\u003e 重命名为 \u003ccode\u003edatlocale\u003c/code\u003e（Jeff Davis）\u003ca href=\"https://postgr.es/c/f696c0cd5\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-9b65a0870aed3d75","identity_text":"Rename pg_collation.colliculocale to colllocale and pg_database.daticulocale to datlocale (Jeff Davis)","part":"migration","patch_ids":["6bce4b4beb93e2fab15393aac74de9c5"],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":["f696c0cd5"],"source_entry_id":"17.0/migration/015","source_hash":"af8abeeb9a49d32e8211cd2706f29bb8263b9fd6192cf1c523b9f48c1970a015","source_url":"/docs/release/17.0/#RELEASE-17-MIGRATION","statement_hash":"31b5beb1310fee3f35abba7fc3e4072aadf5a7c7ff9cf5d19212d6ac49d4a3e7","text":"将 pg_collation.colliculocale 重命名为 colllocale，并将 pg_database.daticulocale 重命名为 datlocale（Jeff Davis）§","title":"将 pg_collation.colliculocale 重命名为 colllocale，并将 pg_database.daticulocale 重命名为 datlocale","variants":[],"version":"17.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":["667e65aac","f1affb670"],"commit_groups":[["667e65aac"],["f1affb670"]],"commits":["667e65aac","f1affb670"],"cves":[],"db_id":"8b815f87d891f86edf6d47ab77ead937","html":"\u003cp\u003e将 \u003ca href=\"/docs/17/progress-reporting.html#VACUUM-PROGRESS-REPORTING\" title=\"27.4.5. VACUUM 进度报告\"\u003e\u003ccode\u003epg_stat_progress_vacuum\u003c/code\u003e\u003c/a\u003e 的列 \u003ccode\u003emax_dead_tuples\u003c/code\u003e 重命名为 \u003ccode\u003emax_dead_tuple_bytes\u003c/code\u003e，将 \u003ccode\u003enum_dead_tuples\u003c/code\u003e 重命名为 \u003ccode\u003enum_dead_item_ids\u003c/code\u003e，并新增 \u003ccode\u003edead_tuple_bytes\u003c/code\u003e（Masahiko Sawada）\u003ca href=\"https://postgr.es/c/667e65aac\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/f1affb670\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-83ba247a819589ec","identity_text":"Rename pg_stat_progress_vacuum column max_dead_tuples to max_dead_tuple_bytes, rename num_dead_tuples to num_dead_item_ids, and add dead_tuple_bytes (Masahiko Sawada)","part":"migration","patch_ids":["19217bd878f4c23be2e5b3f9cf78a8c5","c3bd16b8d0e781c5494b9d539a9c8ca5"],"related_changes":[{"db_id":"0321eade032d4cb38972f9e735a7b2c6","evidence":{"ambiguous_patch_ids":["5d86834128896d8abb2bc88737d46417"],"patch_ids":["19217bd878f4c23be2e5b3f9cf78a8c5"],"same_day":true},"kind":"related","label":"17.0","source_url":"/docs/release/17.0/#RELEASE-17-PERFORMANCE","title":"允许 vacuum 更高效地存储元组引用","url":"/docs/compare/?release=17.0#17.0-fbfbfc68d8d0c85a","version":"17.0"}],"relations":[{"evidence":{"ambiguous_patch_ids":["5d86834128896d8abb2bc88737d46417"],"patch_ids":["19217bd878f4c23be2e5b3f9cf78a8c5"],"same_day":true},"rule":2,"target":"0321eade032d4cb38972f9e735a7b2c6","type":"related"}],"section":"兼容性","section_path":["兼容性"],"source_commits":["667e65aac","f1affb670"],"source_entry_id":"17.0/migration/016","source_hash":"65af897e2a50329f28af6aae9770ed9560293da4c8654adca7c0ddad884a339b","source_url":"/docs/release/17.0/#RELEASE-17-MIGRATION","statement_hash":"1ec0e026d2f88826348b7e2efb08134a22a0db506d06897ee4468704cc8a9a07","text":"将 pg_stat_progress_vacuum 的列 max_dead_tuples 重命名为 max_dead_tuple_bytes，将 num_dead_tuples 重命名为 num_dead_item_ids，并新增 dead_tuple_bytes（Masahiko Sawada）§ §","title":"将 pg_stat_progress_vacuum 的列 max_dead_tuples 重命名为 max_dead_tuple_bytes，将 num_dead_tuples 重命名为 num_dead_item_ids，并新增 dead_tuple_bytes","variants":[],"version":"17.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":["bcdfa5f2e"],"commit_groups":[["bcdfa5f2e"]],"commits":["bcdfa5f2e"],"cves":[],"db_id":"e152ac4c1f5f8d987d2d4164db352c5d","html":"\u003cp\u003e重命名系统视图 \u003ca href=\"/docs/17/monitoring-stats.html#MONITORING-PG-STAT-SLRU-VIEW\" title=\"27.2.25. pg_stat_slru\"\u003e\u003ccode\u003epg_stat_slru\u003c/code\u003e\u003c/a\u003e 中的 \u003cacronym\u003eSLRU\u003c/acronym\u003e 列（Alvaro Herrera）\u003ca href=\"https://postgr.es/c/bcdfa5f2e\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/docs/17/monitoring-stats.html#MONITORING-STATS-FUNCS-TABLE\" title=\"表 27.36. 附加统计函数\"\u003e\u003ccode\u003epg_stat_reset_slru()\u003c/code\u003e\u003c/a\u003e 接受的列名也随之更改。\u003c/p\u003e","id":"17.0-3340286b2ddec381","identity_text":"Rename SLRU columns in system view pg_stat_slru (Alvaro Herrera) The column names accepted by pg_stat_reset_slru() are also changed.","part":"migration","patch_ids":["823fd6f92af518e49e4224ce249d8d5f"],"related_changes":[],"relations":[],"section":"兼容性","section_path":["兼容性"],"source_commits":["bcdfa5f2e"],"source_entry_id":"17.0/migration/017","source_hash":"a50a2fc722f62186e84169429a30b38153d552ded961651dc2e6c3f3837021d6","source_url":"/docs/release/17.0/#RELEASE-17-MIGRATION","statement_hash":"f9dfa9d3d7a6e9d7b97c2431147c8763d3306f572c9616d361cfbc7d62e22366","text":"重命名系统视图 pg_stat_slru 中的 SLRU 列（Alvaro Herrera）§ pg_stat_reset_slru() 接受的列名也随之更改。","title":"重命名系统视图 pg_stat_slru 中的 SLRU 列","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["a65724dfa","f7816aec2"],"commit_groups":[["a65724dfa"],["f7816aec2"]],"commits":["a65724dfa","f7816aec2"],"cves":[],"db_id":"1bb1a2c448bb08cbe14be346046d20fd","html":"\u003cp\u003e允许优化器通过考虑较早行输出子句中所引用列的统计信息和排序顺序来改进 \u003cacronym\u003eCTE\u003c/acronym\u003e 计划（Jian Guo, Richard Guo, Tom Lane）\u003ca href=\"https://postgr.es/c/f7816aec2\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/a65724dfa\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-21f3d2b047f89aaf","identity_text":"Allow the optimizer to improve CTE plans by considering the statistics and sort order of columns referenced in earlier row output clauses (Jian Guo, Richard Guo, Tom Lane)","part":"changes","patch_ids":["dd6efb8af27f478ece630d77b62169aa","e36c8e7bc021005d10ff030521cc9739"],"related_changes":[],"relations":[],"section":"服务器 / 优化器","section_path":["服务器","优化器"],"source_commits":["a65724dfa","f7816aec2"],"source_entry_id":"17.0/changes/001","source_hash":"eb7e5faf6f425197daedcb76b78cbc39f042ce8562cdef12882543b7d7b4070e","source_url":"/docs/release/17.0/#RELEASE-17-OPTIMIZER","statement_hash":"4bf0f103f215559ebf931992edf6c51246aefce339d92536b4458efdd2e66ee7","text":"允许优化器通过考虑较早行输出子句中所引用列的统计信息和排序顺序来改进 CTE 计划（Jian Guo, Richard Guo, Tom Lane）§ §","title":"允许优化器通过考虑较早行输出子句中所引用列的统计信息和排序顺序来改进 CTE 计划","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["3af704098","b262ad440"],"commit_groups":[["3af704098"],["b262ad440"]],"commits":["3af704098","b262ad440"],"cves":[],"db_id":"6a8a68dcc3d0afa8fe41f9c0cb346cdb","html":"\u003cp\u003e改进对 \u003ccode\u003eIS NOT NULL\u003c/code\u003e 和 \u003ccode\u003eIS NULL\u003c/code\u003e 查询限制条件的优化（David Rowley, Richard Guo, Andy Fan）\u003ca href=\"https://postgr.es/c/b262ad440\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/3af704098\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e从对 \u003ccode\u003eNOT NULL\u003c/code\u003e 列的查询中移除 \u003ccode\u003eIS NOT NULL\u003c/code\u003e 限制条件，并在指定 \u003ccode\u003eIS NULL\u003c/code\u003e 时消除对 \u003ccode\u003eNOT NULL\u003c/code\u003e 列的扫描。\u003c/p\u003e","id":"17.0-cba148decc6176eb","identity_text":"Improve optimization of IS NOT NULL and IS NULL query restrictions (David Rowley, Richard Guo, Andy Fan) Remove IS NOT NULL restrictions from queries on NOT NULL columns and eliminate scans on NOT NULL columns if IS NULL is specified.","part":"changes","patch_ids":["f0600bde890998500bbb618c1b685216","ff7fbff5acc4e14db82db8a232d3033c"],"related_changes":[],"relations":[],"section":"服务器 / 优化器","section_path":["服务器","优化器"],"source_commits":["3af704098","b262ad440"],"source_entry_id":"17.0/changes/002","source_hash":"7c05c9caff1d1ce0caea80d6711c0798c93c60e752dd8c7418b054db78b85639","source_url":"/docs/release/17.0/#RELEASE-17-OPTIMIZER","statement_hash":"5b89ca77e9383dc291180695491f866ffe59cf3f577677d5b7c4ce737ae70704","text":"改进对 IS NOT NULL 和 IS NULL 查询限制条件的优化（David Rowley, Richard Guo, Andy Fan）§ § 从对 NOT NULL 列的查询中移除 IS NOT NULL 限制条件，并在指定 IS NULL 时消除对 NOT NULL 列的扫描。","title":"改进对 IS NOT NULL 和 IS NULL 查询限制条件的优化","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["07c36c133"],"commit_groups":[["07c36c133"]],"commits":["07c36c133"],"cves":[],"db_id":"afda858770617dec4b1376034bb38216","html":"\u003cp\u003e允许在布尔列的 \u003ccode\u003eIS [NOT] UNKNOWN\u003c/code\u003e 条件下进行分区剪枝（David Rowley）\u003ca href=\"https://postgr.es/c/07c36c133\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-29e5b755857cf8f0","identity_text":"Allow partition pruning on boolean columns on IS [NOT] UNKNOWN conditionals (David Rowley)","part":"changes","patch_ids":["8ed535aa9c37315fc74364911854ff1a"],"related_changes":[],"relations":[],"section":"服务器 / 优化器","section_path":["服务器","优化器"],"source_commits":["07c36c133"],"source_entry_id":"17.0/changes/003","source_hash":"d331f3bd8a6586468f0229c43b2feee5a2f695567cd0e8dcdc42726c3c46211a","source_url":"/docs/release/17.0/#RELEASE-17-OPTIMIZER","statement_hash":"7ccc721d6d3c781fb621fd9ec123f4b31861655429858dc2d7b5fd09658778ed","text":"允许在布尔列的 IS [NOT] UNKNOWN 条件下进行分区剪枝（David Rowley）§","title":"允许在布尔列的 IS [NOT] UNKNOWN 条件下进行分区剪枝","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["075df6b20"],"commit_groups":[["075df6b20"]],"commits":["075df6b20"],"cves":[],"db_id":"d1f7be8974ba06dfc203556a75d0b63e","html":"\u003cp\u003e改进在使用包含操作符 \u0026lt;@ 和 @\u0026gt; 时对范围值的优化（Kim Johan Andersson, Jian He）\u003ca href=\"https://postgr.es/c/075df6b20\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-f5b70abfde92c84e","identity_text":"Improve optimization of range values when using containment operators \u003c@ and @\u003e (Kim Johan Andersson, Jian He)","part":"changes","patch_ids":["9da08e61b99722f0b36328e0507510c9"],"related_changes":[],"relations":[],"section":"服务器 / 优化器","section_path":["服务器","优化器"],"source_commits":["075df6b20"],"source_entry_id":"17.0/changes/004","source_hash":"aacddfb193bc2a88d93a27a0db3c55fe9903d1488e18294d0d495a09314a6258","source_url":"/docs/release/17.0/#RELEASE-17-OPTIMIZER","statement_hash":"377e3b1f92476ceb43181983d5d69e7003385bb96cba0986365b251bdffb3e3a","text":"改进在使用包含操作符 \u003c@ 和 @\u003e 时对范围值的优化（Kim Johan Andersson, Jian He）§","title":"改进在使用包含操作符 \u003c@ 和 @\u003e 时对范围值的优化","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["9f1337639"],"commit_groups":[["9f1337639"]],"commits":["9f1337639"],"cves":[],"db_id":"bd6d6519713b08c9c7cf110314e70ea2","html":"\u003cp\u003e允许将相关 \u003ccode\u003eIN\u003c/code\u003e 子查询转换为连接（Andy Fan, Tom Lane）\u003ca href=\"https://postgr.es/c/9f1337639\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-507120ad4033838d","identity_text":"Allow correlated IN subqueries to be transformed into joins (Andy Fan, Tom Lane)","part":"changes","patch_ids":["9ff41ac8faf0b88877f55a3102aa7ca1"],"related_changes":[],"relations":[],"section":"服务器 / 优化器","section_path":["服务器","优化器"],"source_commits":["9f1337639"],"source_entry_id":"17.0/changes/005","source_hash":"7a79baf5daa1de4f6a03744cccacba82c5839fa158e77bb1bb1f25a654a465e7","source_url":"/docs/release/17.0/#RELEASE-17-OPTIMIZER","statement_hash":"291f61f422e10fcd5437a30e9e3675618ff3f18d9cc162e4146d6283e1f82851","text":"允许将相关 IN 子查询转换为连接（Andy Fan, Tom Lane）§","title":"允许将相关 IN 子查询转换为连接","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["a8a968a82"],"commit_groups":[["a8a968a82"]],"commits":["a8a968a82"],"cves":[],"db_id":"83282acbc3be079c637d32e6d6cebf05","html":"\u003cp\u003e改进在分区表、继承父表以及 \u003ccode\u003eUNION ALL\u003c/code\u003e 查询上对 \u003ccode\u003eLIMIT\u003c/code\u003e 子句的优化（Andy Fan, David Rowley）\u003ca href=\"https://postgr.es/c/a8a968a82\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-d3e2e7215929a4e8","identity_text":"Improve optimization of the LIMIT clause on partitioned tables, inheritance parents, and UNION ALL queries (Andy Fan, David Rowley)","part":"changes","patch_ids":["62d46325d2a848ee5e5caa049662a48e"],"related_changes":[],"relations":[],"section":"服务器 / 优化器","section_path":["服务器","优化器"],"source_commits":["a8a968a82"],"source_entry_id":"17.0/changes/006","source_hash":"c20d48a847b378c3bd762b7d9a14f2460fd0fe52bebfc264431dc7ee88ee8c5f","source_url":"/docs/release/17.0/#RELEASE-17-OPTIMIZER","statement_hash":"d1029e52b0d66482bdf975a702319bffddd519a8ef83347d01199c89fd7c09ab","text":"改进在分区表、继承父表以及 UNION ALL 查询上对 LIMIT 子句的优化（Andy Fan, David Rowley）§","title":"改进在分区表、继承父表以及 UNION ALL 查询上对 LIMIT 子句的优化","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["e08d74ca1"],"commit_groups":[["e08d74ca1"]],"commits":["e08d74ca1"],"cves":[],"db_id":"0fa6c000b6b77e4811956857239c9210","html":"\u003cp\u003e允许在更多情况下并行运行查询节点（Tom Lane）\u003ca href=\"https://postgr.es/c/e08d74ca1\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-ece45a3bbdee6c93","identity_text":"Allow query nodes to be run in parallel in more cases (Tom Lane)","part":"changes","patch_ids":["8a7fca928d7277fb722987d1122d15ff"],"related_changes":[],"relations":[],"section":"服务器 / 优化器","section_path":["服务器","优化器"],"source_commits":["e08d74ca1"],"source_entry_id":"17.0/changes/007","source_hash":"2fc5e7bbf46cfd7d1e6bd86828ce9e60d4fd41ae29f16ceb508e584a880ca2b8","source_url":"/docs/release/17.0/#RELEASE-17-OPTIMIZER","statement_hash":"f7b3830c016aba7f85d380badc1eb852144eb342878a16dafbc4505cc6aa5295","text":"允许在更多情况下并行运行查询节点（Tom Lane）§","title":"允许在更多情况下并行运行查询节点","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["0452b461b"],"commit_groups":[["0452b461b"]],"commits":["0452b461b"],"cves":[],"db_id":"02f929ca7ad29c477bf05b612f478447","html":"\u003cp\u003e允许在内部重新排列 \u003ccode\u003eGROUP BY\u003c/code\u003e 列，以匹配 \u003ccode\u003eORDER BY\u003c/code\u003e（Andrei Lepikhov, Teodor Sigaev）\u003ca href=\"https://postgr.es/c/0452b461b\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这可使用服务器变量\u003ca href=\"/docs/17/runtime-config-query.html#GUC-ENABLE-GROUPBY-REORDERING\"\u003eenable_group_by_reordering\u003c/a\u003e禁用。\u003c/p\u003e","id":"17.0-cf4ceaa1bff1d02c","identity_text":"Allow GROUP BY columns to be internally ordered to match ORDER BY (Andrei Lepikhov, Teodor Sigaev) This can be disabled using server variable guc-enable-groupby-reordering .","part":"changes","patch_ids":["31d9db254e62be9c4a36570707e5f98d"],"related_changes":[],"relations":[],"section":"服务器 / 优化器","section_path":["服务器","优化器"],"source_commits":["0452b461b"],"source_entry_id":"17.0/changes/008","source_hash":"69a7a8adce04ec7d64e11c11fa22957f06009f1ebf52db9fbe59082ecb65e7b1","source_url":"/docs/release/17.0/#RELEASE-17-OPTIMIZER","statement_hash":"540cd1f010beb51842f38059da03d4ee92041d1eb1624736616488927742e9b9","text":"允许在内部重新排列 GROUP BY 列，以匹配 ORDER BY（Andrei Lepikhov, Teodor Sigaev）§ 这可使用服务器变量enable_group_by_reordering禁用。","title":"允许在内部重新排列 GROUP BY 列，以匹配 ORDER BY","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["66c0185a3"],"commit_groups":[["66c0185a3"]],"commits":["66c0185a3"],"cves":[],"db_id":"1b4c2b726811d73067a879fe0f452060","html":"\u003cp\u003e允许 \u003ccode\u003eUNION\u003c/code\u003e（不带 \u003ccode\u003eALL\u003c/code\u003e）使用 MergeAppend（David Rowley）\u003ca href=\"https://postgr.es/c/66c0185a3\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-22c36132e8bec1c4","identity_text":"Allow UNION (without ALL) to use MergeAppend (David Rowley)","part":"changes","patch_ids":["f7a0eee21e8cda45a208b9a2c8ab935b"],"related_changes":[],"relations":[],"section":"服务器 / 优化器","section_path":["服务器","优化器"],"source_commits":["66c0185a3"],"source_entry_id":"17.0/changes/009","source_hash":"e539e116a16a6c36494f626d124d5c74cd131b41507643ef1dbb92491985d324","source_url":"/docs/release/17.0/#RELEASE-17-OPTIMIZER","statement_hash":"c0538bd4e938c0a4a086c5cd87a4327760cbfadc09e5fca423956ff44d44a406","text":"允许 UNION（不带 ALL）使用 MergeAppend（David Rowley）§","title":"允许 UNION（不带 ALL）使用 MergeAppend","variants":[],"version":"17.0"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["9d1a5354f"],"commit_groups":[["9d1a5354f"]],"commits":["9d1a5354f"],"cves":[],"db_id":"3f2526f05d7f915d14b9d71a273f8a05","html":"\u003cp\u003e修复 MergeAppend 计划，使其更准确地计算需要排序的行数（Alexander Kuzmenkov）\u003ca href=\"https://postgr.es/c/9d1a5354f\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-97a630bc1449a3d3","identity_text":"Fix MergeAppend plans to more accurately compute the number of rows that need to be sorted (Alexander Kuzmenkov)","part":"changes","patch_ids":["51394b47048db81db5c8ca3b8f195e0c"],"related_changes":[],"relations":[],"section":"服务器 / 优化器","section_path":["服务器","优化器"],"source_commits":["9d1a5354f"],"source_entry_id":"17.0/changes/010","source_hash":"91b1492c15711f380b4f4a5023adc25acd41631c44a22e0e49bd30385524a85a","source_url":"/docs/release/17.0/#RELEASE-17-OPTIMIZER","statement_hash":"1b89e926d198570600425805c23c395ea3e13a6e84af61090ed0ada7f0584d69","text":"修复 MergeAppend 计划，使其更准确地计算需要排序的行数（Alexander Kuzmenkov）§","title":"修复 MergeAppend 计划，使其更准确地计算需要排序的行数","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["625d5b3ca"],"commit_groups":[["625d5b3ca"]],"commits":["625d5b3ca"],"cves":[],"db_id":"1e78c474d4dc8fead2cee8adc6b881e1","html":"\u003cp\u003e允许 \u003ca href=\"/docs/17/gist.html\" title=\"64.2. GiST 索引\"\u003eGiST\u003c/a\u003e 和 \u003ca href=\"/docs/17/spgist.html\" title=\"64.3. SP-GiST 索引\"\u003eSP-GiST\u003c/a\u003e 索引参与增量排序（Miroslav Bendik）\u003ca href=\"https://postgr.es/c/625d5b3ca\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这对于首列具有 GiST 或 SP-GiST 索引而其他列没有的 \u003ccode\u003eORDER BY\u003c/code\u003e 子句尤其有用。\u003c/p\u003e","id":"17.0-f89209bb66394a3b","identity_text":"Allow GiST and SP-GiST indexes to be part of incremental sorts (Miroslav Bendik) This is particularly useful for ORDER BY clauses where the first column has a GiST and SP-GiST index, and other columns do not.","part":"changes","patch_ids":["dfbbdfe017c5c71c4ef9dfa0c1c47eb9"],"related_changes":[],"relations":[],"section":"服务器 / 优化器","section_path":["服务器","优化器"],"source_commits":["625d5b3ca"],"source_entry_id":"17.0/changes/011","source_hash":"61d6f668fbc86ce8556101e58d4a9a263c5ec7c6fcf48ab1111902ca64253204","source_url":"/docs/release/17.0/#RELEASE-17-OPTIMIZER","statement_hash":"94587849bd7b7e481c3f6b17c98668f4483a63ce346e12aef6e0b1a243ff9858","text":"允许 GiST 和 SP-GiST 索引参与增量排序（Miroslav Bendik）§ 这对于首列具有 GiST 或 SP-GiST 索引而其他列没有的 ORDER BY 子句尤其有用。","title":"允许 GiST 和 SP-GiST 索引参与增量排序","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["bc3c8db8a"],"commit_groups":[["bc3c8db8a"]],"commits":["bc3c8db8a"],"cves":[],"db_id":"037099a7ff600d9768772dd9aa4fd36e","html":"\u003cp\u003e向 \u003ca href=\"/docs/17/view-pg-stats.html\" title=\"52.27. pg_stats\"\u003e\u003ccode\u003epg_stats\u003c/code\u003e\u003c/a\u003e 添加列，以报告范围类型的直方图信息（Egor Rogov, Soumyadeep Chakraborty）\u003ca href=\"https://postgr.es/c/bc3c8db8a\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-5bdd18c3a0665318","identity_text":"Add columns to pg_stats to report range-type histogram information (Egor Rogov, Soumyadeep Chakraborty)","part":"changes","patch_ids":["a63e4162a922bb5fcc04165cdac5e2c6"],"related_changes":[],"relations":[],"section":"服务器 / 优化器","section_path":["服务器","优化器"],"source_commits":["bc3c8db8a"],"source_entry_id":"17.0/changes/012","source_hash":"2a5511c28248dc15f2f1b168c9387eec29b7ad33e15680f3c8d3d57fe1ae5fa7","source_url":"/docs/release/17.0/#RELEASE-17-OPTIMIZER","statement_hash":"cf3c84a11f3b613b0a873d0b9a0575c0838ec84ca1864ada35f16c59866938af","text":"向 pg_stats 添加列，以报告范围类型的直方图信息（Egor Rogov, Soumyadeep Chakraborty）§","title":"向 pg_stats 添加列，以报告范围类型的直方图信息","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["5bf748b86"],"commit_groups":[["5bf748b86"]],"commits":["5bf748b86"],"cves":[],"db_id":"e47d7b6056c6ec1e9e008a67eb552a53","html":"\u003cp\u003e允许 \u003ca href=\"/docs/17/btree.html\" title=\"64.1. B-树索引\"\u003eB-树\u003c/a\u003e索引更高效地查找一组值，例如使用常量的 \u003ccode\u003eIN\u003c/code\u003e 子句所提供的值（Peter Geoghegan, Matthias van de Meent）\u003ca href=\"https://postgr.es/c/5bf748b86\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-d95aa3ed60f61d89","identity_text":"Allow btree indexes to more efficiently find a set of values, such as those supplied by IN clauses using constants (Peter Geoghegan, Matthias van de Meent)","part":"changes","patch_ids":["62f02f1e9bb968e242e65dd52e8d5cc8"],"related_changes":[],"relations":[],"section":"服务器 / 索引","section_path":["服务器","索引"],"source_commits":["5bf748b86"],"source_entry_id":"17.0/changes/013","source_hash":"b78577eba77ed7afb71b32e574365c6fc2aae6b448b0920298f0706a96cffef8","source_url":"/docs/release/17.0/#RELEASE-17-INDEXES","statement_hash":"3ee0ee4a8dd9858c539ca1b15a832632c8c4d1dcce33b59c7bf1fe24a90b6473","text":"允许 B-树索引更高效地查找一组值，例如使用常量的 IN 子句所提供的值（Peter Geoghegan, Matthias van de Meent）§","title":"允许 B-树索引更高效地查找一组值，例如使用常量的 IN 子句所提供的值","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["b43757171"],"commit_groups":[["b43757171"]],"commits":["b43757171"],"cves":[],"db_id":"357f54e0344a35006dbfb9a0f7949ed5","html":"\u003cp\u003e允许使用并行工作进程创建 \u003ca href=\"/docs/17/brin.html\" title=\"64.5. BRIN 索引\"\u003e\u003cacronym\u003eBRIN\u003c/acronym\u003e\u003c/a\u003e 索引（Tomas Vondra, Matthias van de Meent）\u003ca href=\"https://postgr.es/c/b43757171\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-c837db8b17f85f1f","identity_text":"Allow BRIN indexes to be created using parallel workers (Tomas Vondra, Matthias van de Meent)","part":"changes","patch_ids":["06897789dd8c7b7411b4080c6ca4173e"],"related_changes":[],"relations":[],"section":"服务器 / 索引","section_path":["服务器","索引"],"source_commits":["b43757171"],"source_entry_id":"17.0/changes/014","source_hash":"c770c0ed1566fb3735ece3a13dc379fd18ddafff4833a97d43abecbd1dbe6e30","source_url":"/docs/release/17.0/#RELEASE-17-INDEXES","statement_hash":"92760d5d96ba8a77fdf7906cef8e52436561bf69711442768c57d6c0e0daca29","text":"允许使用并行工作进程创建 BRIN 索引（Tomas Vondra, Matthias van de Meent）§","title":"允许使用并行工作进程创建 BRIN 索引","variants":[],"version":"17.0"},{"also_in":[],"category":"performance","category_label":"Performance","commit_aliases":["6dbb49026"],"commit_groups":[["6dbb49026"]],"commits":["6dbb49026"],"cves":[],"db_id":"89a653da6e7aa69a72c4cd8c75af4011","html":"\u003cp\u003e允许 vacuum 更高效地移除和冻结元组（Melanie Plageman, Heikki Linnakangas）\u003ca href=\"https://postgr.es/c/6dbb49026\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003evacuum 产生的 \u003cacronym\u003eWAL\u003c/acronym\u003e 流量也更紧凑。\u003c/p\u003e","id":"17.0-d9db03aa5820139c","identity_text":"Allow vacuum to more efficiently remove and freeze tuples (Melanie Plageman, Heikki Linnakangas) WAL traffic caused by vacuum is also more compact.","part":"changes","patch_ids":["5d86834128896d8abb2bc88737d46417"],"related_changes":[{"db_id":"0321eade032d4cb38972f9e735a7b2c6","evidence":{"ambiguous_patch_ids":["5d86834128896d8abb2bc88737d46417"],"patch_ids":["5d86834128896d8abb2bc88737d46417"],"same_day":true},"kind":"related","label":"17.0","source_url":"/docs/release/17.0/#RELEASE-17-PERFORMANCE","title":"允许 vacuum 更高效地存储元组引用","url":"/docs/compare/?release=17.0#17.0-fbfbfc68d8d0c85a","version":"17.0"}],"relations":[{"evidence":{"ambiguous_patch_ids":["5d86834128896d8abb2bc88737d46417"],"patch_ids":["5d86834128896d8abb2bc88737d46417"],"same_day":true},"rule":2,"target":"0321eade032d4cb38972f9e735a7b2c6","type":"related"}],"section":"服务器 / 一般性能","section_path":["服务器","一般性能"],"source_commits":["6dbb49026"],"source_entry_id":"17.0/changes/015","source_hash":"8b0684783c44f4a5b4a678b52f856b2edff73b477c6a1537b0ac04cd3bba07d4","source_url":"/docs/release/17.0/#RELEASE-17-PERFORMANCE","statement_hash":"863cb996bf9728565e861341970344c05db07fae1a00e77d1a4149fad751578b","text":"允许 vacuum 更高效地移除和冻结元组（Melanie Plageman, Heikki Linnakangas）§ vacuum 产生的 WAL 流量也更紧凑。","title":"允许 vacuum 更高效地移除和冻结元组","variants":[],"version":"17.0"},{"also_in":[],"category":"performance","category_label":"Performance","commit_aliases":["30e144287","667e65aac","6dbb49026","ee1b30f12"],"commit_groups":[["30e144287"],["667e65aac"],["6dbb49026"],["ee1b30f12"]],"commits":["30e144287","667e65aac","6dbb49026","ee1b30f12"],"cves":[],"db_id":"0321eade032d4cb38972f9e735a7b2c6","html":"\u003cp\u003e允许 vacuum 更高效地存储元组引用（Masahiko Sawada, John Naylor）\u003ca href=\"https://postgr.es/c/ee1b30f12\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/30e144287\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/667e65aac\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/6dbb49026\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e此外，当\u003ca href=\"/docs/17/runtime-config-resource.html#GUC-MAINTENANCE-WORK-MEM\"\u003emaintenance_work_mem\u003c/a\u003e或\u003ca href=\"/docs/17/runtime-config-resource.html#GUC-AUTOVACUUM-WORK-MEM\"\u003eautovacuum_work_mem\u003c/a\u003e更高时，vacuum 不再被静默限制为最多使用 1 GB 内存。\u003c/p\u003e","id":"17.0-fbfbfc68d8d0c85a","identity_text":"Allow vacuum to more efficiently store tuple references (Masahiko Sawada, John Naylor) Additionally, vacuum is no longer silently limited to one gigabyte of memory when guc-maintenance-work-mem or guc-autovacuum-work-mem are higher.","part":"changes","patch_ids":["19217bd878f4c23be2e5b3f9cf78a8c5","263f7b224629a60b546cdf35f2c8f04d","5d86834128896d8abb2bc88737d46417","d577808acab8c13e3546b8fdc5244b59"],"related_changes":[{"db_id":"8b815f87d891f86edf6d47ab77ead937","evidence":{"ambiguous_patch_ids":["5d86834128896d8abb2bc88737d46417"],"patch_ids":["19217bd878f4c23be2e5b3f9cf78a8c5"],"same_day":true},"kind":"related","label":"17.0","source_url":"/docs/release/17.0/#RELEASE-17-MIGRATION","title":"将 pg_stat_progress_vacuum 的列 max_dead_tuples 重命名为 max_dead_tuple_bytes，将 num_dead_tuples 重命名为 num_dead_item_ids，并新增 dead_tuple_bytes","url":"/docs/compare/?release=17.0#17.0-83ba247a819589ec","version":"17.0"},{"db_id":"89a653da6e7aa69a72c4cd8c75af4011","evidence":{"ambiguous_patch_ids":["5d86834128896d8abb2bc88737d46417"],"patch_ids":["5d86834128896d8abb2bc88737d46417"],"same_day":true},"kind":"related","label":"17.0","source_url":"/docs/release/17.0/#RELEASE-17-PERFORMANCE","title":"允许 vacuum 更高效地移除和冻结元组","url":"/docs/compare/?release=17.0#17.0-d9db03aa5820139c","version":"17.0"}],"relations":[{"evidence":{"ambiguous_patch_ids":["5d86834128896d8abb2bc88737d46417"],"patch_ids":["5d86834128896d8abb2bc88737d46417"],"same_day":true},"rule":2,"target":"89a653da6e7aa69a72c4cd8c75af4011","type":"related"},{"evidence":{"ambiguous_patch_ids":["5d86834128896d8abb2bc88737d46417"],"patch_ids":["19217bd878f4c23be2e5b3f9cf78a8c5"],"same_day":true},"rule":2,"target":"8b815f87d891f86edf6d47ab77ead937","type":"related"}],"section":"服务器 / 一般性能","section_path":["服务器","一般性能"],"source_commits":["30e144287","667e65aac","6dbb49026","ee1b30f12"],"source_entry_id":"17.0/changes/016","source_hash":"88aab9801a30303866f8b26ed1f8d771db39f2e1168233d760b9634698385d1e","source_url":"/docs/release/17.0/#RELEASE-17-PERFORMANCE","statement_hash":"3961e80042faf2476c0e265de934a1e6a51c2364064d288b1ef4b1ceac3951fd","text":"允许 vacuum 更高效地存储元组引用（Masahiko Sawada, John Naylor）§ § § § 此外，当maintenance_work_mem或autovacuum_work_mem更高时，vacuum 不再被静默限制为最多使用 1 GB 内存。","title":"允许 vacuum 更高效地存储元组引用","variants":[],"version":"17.0"},{"also_in":[],"category":"performance","category_label":"Performance","commit_aliases":["c120550ed"],"commit_groups":[["c120550ed"]],"commits":["c120550ed"],"cves":[],"db_id":"29c98733afaed69876880f25a5bd0a3a","html":"\u003cp\u003e优化对没有索引的关系执行 vacuum（Melanie Plageman）\u003ca href=\"https://postgr.es/c/c120550ed\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-874b4bd54a2c1d8a","identity_text":"Optimize vacuuming of relations with no indexes (Melanie Plageman)","part":"changes","patch_ids":["ae078cc360de92d7cd946d75c30a97ec"],"related_changes":[],"relations":[],"section":"服务器 / 一般性能","section_path":["服务器","一般性能"],"source_commits":["c120550ed"],"source_entry_id":"17.0/changes/017","source_hash":"26bdc93a519bcef710427cb4162833e37bc622f782d89cf18292a5115e90c369","source_url":"/docs/release/17.0/#RELEASE-17-PERFORMANCE","statement_hash":"051182da5dd288b44aa410530ab97cf2319fcf1d040f71e6501feac20e3225c8","text":"优化对没有索引的关系执行 vacuum（Melanie Plageman）§","title":"优化对没有索引的关系执行 vacuum","variants":[],"version":"17.0"},{"also_in":[],"category":"performance","category_label":"Performance","commit_aliases":["98f320eb2"],"commit_groups":[["98f320eb2"]],"commits":["98f320eb2"],"cves":[],"db_id":"429f08850a5507730819360568b7fd60","html":"\u003cp\u003e将\u003ca href=\"/docs/17/runtime-config-resource.html#GUC-VACUUM-BUFFER-USAGE-LIMIT\"\u003evacuum_buffer_usage_limit\u003c/a\u003e的默认值提高到 2MB（Thomas Munro）\u003ca href=\"https://postgr.es/c/98f320eb2\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-c65ccd956d69cf60","identity_text":"Increase default guc-vacuum-buffer-usage-limit to 2MB (Thomas Munro)","part":"changes","patch_ids":["cf3e200b56ea66a8ac20982966cc7e0a"],"related_changes":[],"relations":[],"section":"服务器 / 一般性能","section_path":["服务器","一般性能"],"source_commits":["98f320eb2"],"source_entry_id":"17.0/changes/018","source_hash":"1fc1936feebddb0a83369b1307de0a6397a8d2f1f0ba15bf2accac68978c5868","source_url":"/docs/release/17.0/#RELEASE-17-PERFORMANCE","statement_hash":"bff2838d1874f02abef53ccdae72774c30923efed6e73e07eab40437a98f44d2","text":"将vacuum_buffer_usage_limit的默认值提高到 2MB（Thomas Munro）§","title":"将vacuum_buffer_usage_limit的默认值提高到 2MB","variants":[],"version":"17.0"},{"also_in":[],"category":"performance","category_label":"Performance","commit_aliases":["d365ae705"],"commit_groups":[["d365ae705"]],"commits":["d365ae705"],"cves":[],"db_id":"1f69c59a8d7500e2107f67e43c831452","html":"\u003cp\u003e改进在检查具有大量成员关系的角色时的性能（Nathan Bossart）\u003ca href=\"https://postgr.es/c/d365ae705\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-799eff850bcef54e","identity_text":"Improve performance when checking roles with many memberships (Nathan Bossart)","part":"changes","patch_ids":["7b48237dcb0079ef5c7120e5c665926b"],"related_changes":[],"relations":[],"section":"服务器 / 一般性能","section_path":["服务器","一般性能"],"source_commits":["d365ae705"],"source_entry_id":"17.0/changes/019","source_hash":"a5bab4fe4e0e2828cdb7f446e61cd01091f63865ddba851fba597fd574eff596","source_url":"/docs/release/17.0/#RELEASE-17-PERFORMANCE","statement_hash":"2000eb2cc1ec0d03372e17fc712f5c63189f1643f6dfccc4f94ce895057a1340","text":"改进在检查具有大量成员关系的角色时的性能（Nathan Bossart）§","title":"改进在检查具有大量成员关系的角色时的性能","variants":[],"version":"17.0"},{"also_in":[],"category":"performance","category_label":"Performance","commit_aliases":["71e4cc6b8"],"commit_groups":[["71e4cc6b8"]],"commits":["71e4cc6b8"],"cves":[],"db_id":"d375c35da4155ab032e21fbcc476dd77","html":"\u003cp\u003e改进高竞争情况下 \u003cacronym\u003eWAL\u003c/acronym\u003e 写入的性能（Bharath Rupireddy）\u003ca href=\"https://postgr.es/c/71e4cc6b8\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-8ce446e784c1c780","identity_text":"Improve performance of heavily-contended WAL writes (Bharath Rupireddy)","part":"changes","patch_ids":["b054c6c72fb3b0472bab138c84ff4fac"],"related_changes":[],"relations":[],"section":"服务器 / 一般性能","section_path":["服务器","一般性能"],"source_commits":["71e4cc6b8"],"source_entry_id":"17.0/changes/020","source_hash":"b2e271cf4149ed959aa3318289bf0140336306ce01490fb429ce6d7aeec38890","source_url":"/docs/release/17.0/#RELEASE-17-PERFORMANCE","statement_hash":"bbb0111fa6745baeacf49d13736b2be398611d2221fb4e8d1f8d3d06c79130e9","text":"改进高竞争情况下 WAL 写入的性能（Bharath Rupireddy）§","title":"改进高竞争情况下 WAL 写入的性能","variants":[],"version":"17.0"},{"also_in":[],"category":"performance","category_label":"Performance","commit_aliases":["c4ab7da60"],"commit_groups":[["c4ab7da60"]],"commits":["c4ab7da60"],"cves":[],"db_id":"a8be4eab6c4155c2f1a285c8a63fbf57","html":"\u003cp\u003e改进向客户端传输大块数据时的性能（Melih Mutlu）\u003ca href=\"https://postgr.es/c/c4ab7da60\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-b7102f98a13db53a","identity_text":"Improve performance when transferring large blocks of data to a client (Melih Mutlu)","part":"changes","patch_ids":["4a4db20a21552518a62918f9ed5ac8ae"],"related_changes":[],"relations":[],"section":"服务器 / 一般性能","section_path":["服务器","一般性能"],"source_commits":["c4ab7da60"],"source_entry_id":"17.0/changes/021","source_hash":"a9949c4f225707e425c687c60c71aa6f226a4d17fd57a7e488fb8504b40228ff","source_url":"/docs/release/17.0/#RELEASE-17-PERFORMANCE","statement_hash":"6c2257fb99e4b22d3aa1a5f070824710925a378ef24d8f53f3ffcb8d508fd612","text":"改进向客户端传输大块数据时的性能（Melih Mutlu）§","title":"改进向客户端传输大块数据时的性能","variants":[],"version":"17.0"},{"also_in":[],"category":"performance","category_label":"Performance","commit_aliases":["041b96802","210622c60","b7b0f3f27"],"commit_groups":[["041b96802"],["210622c60"],["b7b0f3f27"]],"commits":["041b96802","210622c60","b7b0f3f27"],"cves":[],"db_id":"12c213ac3532e0b672d8cd5c054de3b6","html":"\u003cp\u003e允许使用新的系统变量\u003ca href=\"/docs/17/runtime-config-resource.html#GUC-IO-COMBINE-LIMIT\"\u003eio_combine_limit\u003c/a\u003e对文件系统读取进行分组（Thomas Munro, Andres Freund, Melanie Plageman, Nazir Bilal Yavuz）\u003ca href=\"https://postgr.es/c/210622c60\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/b7b0f3f27\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/041b96802\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-1228a167a39e7872","identity_text":"Allow the grouping of file system reads with the new system variable guc-io-combine-limit (Thomas Munro, Andres Freund, Melanie Plageman, Nazir Bilal Yavuz)","part":"changes","patch_ids":["71aa6e0943bc5420ec25b6b9d9ae11f8","bfe9972f87a328ed7f16052e6163b069","c61f80906577b0b3bb271a25cce60613"],"related_changes":[],"relations":[],"section":"服务器 / 一般性能","section_path":["服务器","一般性能"],"source_commits":["041b96802","210622c60","b7b0f3f27"],"source_entry_id":"17.0/changes/022","source_hash":"7a996e1e8d1e0db680837628d2311fd11fd77b422463dd8a5766b3f76e04a227","source_url":"/docs/release/17.0/#RELEASE-17-PERFORMANCE","statement_hash":"b28444131aae3fe1f2a3b05878dddf96908adb9beb611ecfc33ce2fbc1d3704f","text":"允许使用新的系统变量io_combine_limit对文件系统读取进行分组（Thomas Munro, Andres Freund, Melanie Plageman, Nazir Bilal Yavuz）§ § §","title":"允许使用新的系统变量io_combine_limit对文件系统读取进行分组","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["12915a58e","96f052613","e820db5b5"],"commit_groups":[["12915a58e"],["96f052613"],["e820db5b5"]],"commits":["12915a58e","96f052613","e820db5b5"],"cves":[],"db_id":"4ff4dee639ca21ea61f8cdea1ee7877a","html":"\u003cp\u003e创建系统视图 \u003ca href=\"/docs/17/monitoring-stats.html#MONITORING-PG-STAT-CHECKPOINTER-VIEW\" title=\"27.2.15. pg_stat_checkpointer\"\u003e\u003ccode\u003epg_stat_checkpointer\u003c/code\u003e\u003c/a\u003e（Bharath Rupireddy, Anton A. Melnikov, Alexander Korotkov）\u003ca href=\"https://postgr.es/c/96f052613\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/12915a58e\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/e820db5b5\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e已将相关列从 \u003ca href=\"/docs/17/monitoring-stats.html#PG-STAT-BGWRITER-VIEW\" title=\"表 27.24. pg_stat_bgwriter 视图\"\u003e\u003ccode\u003epg_stat_bgwriter\u003c/code\u003e\u003c/a\u003e 中移除，并加入这个新系统视图。\u003c/p\u003e","id":"17.0-1cccee587cb0a42d","identity_text":"Create system view pg_stat_checkpointer (Bharath Rupireddy, Anton A. Melnikov, Alexander Korotkov) Relevant columns have been removed from pg_stat_bgwriter and added to this new system view.","part":"changes","patch_ids":["087f770ccd9135f0e8e89744ec2a27a6","742374f840e495b68971a6443adcdbc2","cb09d0627a3b7b094f7b77724f47a27d"],"related_changes":[],"relations":[],"section":"服务器 / 监控","section_path":["服务器","监控"],"source_commits":["12915a58e","96f052613","e820db5b5"],"source_entry_id":"17.0/changes/023","source_hash":"ce6909ffeb67901e0f2084b59385aa14d039d7b745560d56de4fae9972193996","source_url":"/docs/release/17.0/#RELEASE-17-MONITORING","statement_hash":"bee5193ee322640d95b37ce95b101f1ab5429c4e2d2c28f0a6b8614b7a3cd6d0","text":"创建系统视图 pg_stat_checkpointer（Bharath Rupireddy, Anton A. Melnikov, Alexander Korotkov）§ § § 已将相关列从 pg_stat_bgwriter 中移除，并加入这个新系统视图。","title":"创建系统视图 pg_stat_checkpointer","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["23c8c0c8f","2e8a0edc2","e5cca6288"],"commit_groups":[["23c8c0c8f"],["2e8a0edc2"],["e5cca6288"]],"commits":["23c8c0c8f","2e8a0edc2","e5cca6288"],"cves":[],"db_id":"f2b5aa80f146d0e7d1b3950b4f9af0a5","html":"\u003cp\u003e改进对重置统计信息的控制（Atsushi Torikoshi, Bharath Rupireddy）\u003ca href=\"https://postgr.es/c/23c8c0c8f\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/2e8a0edc2\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/e5cca6288\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e允许 \u003ca href=\"/docs/17/monitoring-stats.html#MONITORING-STATS-FUNCS-TABLE\" title=\"表 27.36. 附加统计函数\"\u003e\u003ccode\u003epg_stat_reset_shared()\u003c/code\u003e\u003c/a\u003e（无参数）和 pg_stat_reset_shared(\u003ccode\u003eNULL\u003c/code\u003e) 重置所有共享统计信息。允许 pg_stat_reset_shared('slru') 和 \u003ca href=\"/docs/17/monitoring-stats.html#MONITORING-STATS-FUNCS-TABLE\" title=\"表 27.36. 附加统计函数\"\u003e\u003ccode\u003epg_stat_reset_slru()\u003c/code\u003e\u003c/a\u003e（无参数）重置 \u003cacronym\u003eSLRU\u003c/acronym\u003e 统计信息，而这在以前只能通过 pg_stat_reset_slru(NULL) 实现。\u003c/p\u003e","id":"17.0-2d825eb8d3c5ff0e","identity_text":"Improve control over resetting statistics (Atsushi Torikoshi, Bharath Rupireddy) Allow pg_stat_reset_shared() (with no arguments) and pg_stat_reset_shared(NULL) to reset all shared statistics. Allow pg_stat_reset_shared('slru') and pg_stat_reset_slru() (with no arguments) to reset SLRU statistics, which was already possible with pg_stat_reset_slru(NULL).","part":"changes","patch_ids":["0f89436d4abd3658e358b0083424c2db","152cf4781cee5381f1b3c3c707b98b2a","2a691e57c66c1c257390331e256a72b5"],"related_changes":[],"relations":[],"section":"服务器 / 监控","section_path":["服务器","监控"],"source_commits":["23c8c0c8f","2e8a0edc2","e5cca6288"],"source_entry_id":"17.0/changes/024","source_hash":"2bd79591fd925d674f888e34fecb0fd89ffba2a3e3706b105378a61942507b7e","source_url":"/docs/release/17.0/#RELEASE-17-MONITORING","statement_hash":"ba0121413efd5b7bea0783769e5fe956746dd08cd6f5982f7e2aaed3f69424f2","text":"改进对重置统计信息的控制（Atsushi Torikoshi, Bharath Rupireddy）§ § § 允许 pg_stat_reset_shared()（无参数）和 pg_stat_reset_shared(NULL) 重置所有共享统计信息。允许 pg_stat_reset_shared('slru') 和 pg_stat_reset_slru()（无参数）重置 SLRU 统计信息，而这在以前只能通过 pg_stat_reset_slru(NULL) 实现。","title":"改进对重置统计信息的控制","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["1d35f705e","8b34cff33","edbd1b41a"],"commit_groups":[["1d35f705e","8b34cff33","edbd1b41a"]],"commits":["1d35f705e"],"cves":[],"db_id":"081db8f02dd3ff1c924983d249d21687","html":"\u003cp\u003e添加与从备份恢复 \u003cacronym\u003eWAL\u003c/acronym\u003e 相关的日志消息（Andres Freund）\u003ca href=\"https://postgr.es/c/1d35f705e\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-a754f9aefb902646","identity_text":"Add log messages related to WAL recovery from backups (Andres Freund)","part":"changes","patch_ids":["a50efcd5666996dbc2b769e9fc73c42b"],"related_changes":[{"db_id":"9cd394066681d267db871196e7aac9a5","evidence":{"patch_ids":["a50efcd5666996dbc2b769e9fc73c42b"],"same_day":false},"kind":"related","label":"16.2","source_url":"/docs/release/16.2/#RELEASE-16-2-CHANGES","title":"在从备份开始和结束恢复时增加更多 LOG 消息","url":"/docs/compare/?release=16.2#16.2-d324805180111688","version":"16.2"},{"db_id":"d9ceaf3109bc4845b8831721fb3487e2","evidence":{"patch_ids":["a50efcd5666996dbc2b769e9fc73c42b"],"same_day":false},"kind":"related","label":"15.6","source_url":"/docs/release/15.6/#ZH-AUTO-RELEASE-15-SECT2-24","title":"在从备份开始和结束恢复时增加更多 LOG 消息","url":"/docs/compare/?release=15.6#15.6-5a8bcf4afae18890","version":"15.6"}],"relations":[{"evidence":{"patch_ids":["a50efcd5666996dbc2b769e9fc73c42b"],"same_day":false},"rule":2,"target":"9cd394066681d267db871196e7aac9a5","type":"related"},{"evidence":{"patch_ids":["a50efcd5666996dbc2b769e9fc73c42b"],"same_day":false},"rule":2,"target":"d9ceaf3109bc4845b8831721fb3487e2","type":"related"}],"section":"服务器 / 监控","section_path":["服务器","监控"],"source_commits":["1d35f705e"],"source_entry_id":"17.0/changes/025","source_hash":"af3649c1b838530888d2aaff89eef7b48875e6620e0b1d10f9ac0d5500e874a9","source_url":"/docs/release/17.0/#RELEASE-17-MONITORING","statement_hash":"78b1925536a684c59f0def51c40edf65a3f0ebed9c67f9fe2d98be549b76a0c0","text":"添加与从备份恢复 WAL 相关的日志消息（Andres Freund）§","title":"添加与从备份恢复 WAL 相关的日志消息","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["e48b19c5d"],"commit_groups":[["e48b19c5d"]],"commits":["e48b19c5d"],"cves":[],"db_id":"02d50f684e092404a61af07389c7bccb","html":"\u003cp\u003e为 \u003ccode\u003etrust\u003c/code\u003e 连接添加\u003ca href=\"/docs/17/runtime-config-logging.html#GUC-LOG-CONNECTIONS\"\u003elog_connections\u003c/a\u003e日志行（Jacob Champion）\u003ca href=\"https://postgr.es/c/e48b19c5d\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-566d55cf042146a5","identity_text":"Add guc-log-connections log line for trust connections (Jacob Champion)","part":"changes","patch_ids":["367c956098d0ca49d5c002320e082720"],"related_changes":[],"relations":[],"section":"服务器 / 监控","section_path":["服务器","监控"],"source_commits":["e48b19c5d"],"source_entry_id":"17.0/changes/026","source_hash":"b2770477ea3879a0752b2f4622db20222820342b3484b16498ca54d5a5b029b3","source_url":"/docs/release/17.0/#RELEASE-17-MONITORING","statement_hash":"827565d027538fdb6b92ada1eb79111f76750202d2af887855dd09d2dc7d19d5","text":"为 trust 连接添加log_connections日志行（Jacob Champion）§","title":"为 trust 连接添加log_connections日志行","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["7c3fb505b"],"commit_groups":[["7c3fb505b"]],"commits":["7c3fb505b"],"cves":[],"db_id":"ec20bac29969bfab10f2f2d62b191d5d","html":"\u003cp\u003e添加日志消息以报告 walsender 获取和释放复制槽（Bharath Rupireddy）\u003ca href=\"https://postgr.es/c/7c3fb505b\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这由服务器变量\u003ca href=\"/docs/17/runtime-config-logging.html#GUC-LOG-REPLICATION-COMMANDS\"\u003elog_replication_commands\u003c/a\u003e启用。\u003c/p\u003e","id":"17.0-79325dc055bef580","identity_text":"Add log message to report walsender acquisition and release of replication slots (Bharath Rupireddy) This is enabled by the server variable guc-log-replication-commands .","part":"changes","patch_ids":["eb924a0f2df506f5b700628a7f5f135e"],"related_changes":[],"relations":[],"section":"服务器 / 监控","section_path":["服务器","监控"],"source_commits":["7c3fb505b"],"source_entry_id":"17.0/changes/027","source_hash":"9699908c99c547ef170b47cee317c402c77d68df6edde33ed1a057ca77b7797f","source_url":"/docs/release/17.0/#RELEASE-17-MONITORING","statement_hash":"a98d6d9118479d4d4468c7e9487cc5017f02a43d3407d392d798108681b22d9e","text":"添加日志消息以报告 walsender 获取和释放复制槽（Bharath Rupireddy）§ 这由服务器变量log_replication_commands启用。","title":"添加日志消息以报告 walsender 获取和释放复制槽","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["1e68e43d3"],"commit_groups":[["1e68e43d3"]],"commits":["1e68e43d3"],"cves":[],"db_id":"67eefbc682ee74a140bbc4e7ab7052e5","html":"\u003cp\u003e添加用于报告等待事件类型的系统视图 \u003ca href=\"/docs/17/view-pg-wait-events.html\" title=\"52.36. pg_wait_events\"\u003e\u003ccode\u003epg_wait_events\u003c/code\u003e\u003c/a\u003e（Bertrand Drouvot）\u003ca href=\"https://postgr.es/c/1e68e43d3\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这有助于为 \u003ca href=\"/docs/17/monitoring-stats.html#MONITORING-PG-STAT-ACTIVITY-VIEW\" title=\"27.2.3. pg_stat_activity\"\u003e\u003ccode\u003epg_stat_activity\u003c/code\u003e\u003c/a\u003e 中报告的等待事件补充描述。\u003c/p\u003e","id":"17.0-b23f02f3ca5bb83b","identity_text":"Add system view pg_wait_events that reports wait event types (Bertrand Drouvot) This is useful for adding descriptions to wait events reported in pg_stat_activity.","part":"changes","patch_ids":["afdfc65550d7b2d8273774dc2a6ad40e"],"related_changes":[],"relations":[],"section":"服务器 / 监控","section_path":["服务器","监控"],"source_commits":["1e68e43d3"],"source_entry_id":"17.0/changes/028","source_hash":"27ae26ad8cc5a2d1f7096ed1606a2483d06a7583c94f6a42df8c254dad756062","source_url":"/docs/release/17.0/#RELEASE-17-MONITORING","statement_hash":"329e0406b985caaef112b3b714b1bd1e659323b624f805878ddabd3c1a8db9d5","text":"添加用于报告等待事件类型的系统视图 pg_wait_events（Bertrand Drouvot）§ 这有助于为 pg_stat_activity 中报告的等待事件补充描述。","title":"添加用于报告等待事件类型的系统视图 pg_wait_events","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["0013ba290"],"commit_groups":[["0013ba290"]],"commits":["0013ba290"],"cves":[],"db_id":"7ee802098f5e08ab4d48921edb84ad78","html":"\u003cp\u003e为检查点延迟添加\u003ca href=\"/docs/17/view-pg-wait-events.html\" title=\"52.36. pg_wait_events\"\u003e等待事件\u003c/a\u003e（Thomas Munro）\u003ca href=\"https://postgr.es/c/0013ba290\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-0df4c4c5a0657442","identity_text":"Add wait events for checkpoint delays (Thomas Munro)","part":"changes","patch_ids":["7c35d8c42f00048e52b9c7bf593aedc9"],"related_changes":[],"relations":[],"section":"服务器 / 监控","section_path":["服务器","监控"],"source_commits":["0013ba290"],"source_entry_id":"17.0/changes/029","source_hash":"fb2754377ad0fca7e28ef81cd3ac93708f772f02907fc3fd4102022d576e893c","source_url":"/docs/release/17.0/#RELEASE-17-MONITORING","statement_hash":"b8e3d1ea661bb8a6e52340233d110d5db405b0b4f710584f8c62526cd899e27a","text":"为检查点延迟添加等待事件（Thomas Munro）§","title":"为检查点延迟添加等待事件","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["46ebdfe16"],"commit_groups":[["46ebdfe16"]],"commits":["46ebdfe16"],"cves":[],"db_id":"c5c7cbdb59e6deed181907c953124138","html":"\u003cp\u003e允许 vacuum 报告索引处理进度（Sami Imseih）\u003ca href=\"https://postgr.es/c/46ebdfe16\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这显示在系统视图 \u003ca href=\"/docs/17/progress-reporting.html#PG-STAT-PROGRESS-VACUUM-VIEW\" title=\"表 27.45. pg_stat_progress_vacuum 视图\"\u003e\u003ccode\u003epg_stat_progress_vacuum\u003c/code\u003e\u003c/a\u003e 的 \u003ccode\u003eindexes_total\u003c/code\u003e 和 \u003ccode\u003eindexes_processed\u003c/code\u003e 列中。\u003c/p\u003e","id":"17.0-fa902bad70142407","identity_text":"Allow vacuum to report the progress of index processing (Sami Imseih) This appears in system view pg_stat_progress_vacuum columns indexes_total and indexes_processed.","part":"changes","patch_ids":["cafdf10d5ba59268c2e85d53aee580a0"],"related_changes":[],"relations":[],"section":"服务器 / 监控","section_path":["服务器","监控"],"source_commits":["46ebdfe16"],"source_entry_id":"17.0/changes/030","source_hash":"dd8e0f3197528258609dfe0022a57bef954c7b0484009a66e8fe0080c848fb24","source_url":"/docs/release/17.0/#RELEASE-17-MONITORING","statement_hash":"d23ac243a7bc5d546cf7df7711bfbc19cc0cd0c8e50d156dfcfd6e2a22e51987","text":"允许 vacuum 报告索引处理进度（Sami Imseih）§ 这显示在系统视图 pg_stat_progress_vacuum 的 indexes_total 和 indexes_processed 列中。","title":"允许 vacuum 报告索引处理进度","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["ecb0fd337"],"commit_groups":[["ecb0fd337"]],"commits":["ecb0fd337"],"cves":[],"db_id":"3c4ad5da1b8247231d399e670b07da7b","html":"\u003cp\u003e允许授予执行维护操作的权限（Nathan Bossart）\u003ca href=\"https://postgr.es/c/ecb0fd337\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e该权限可以通过 \u003ca href=\"/docs/17/ddl-priv.html#DDL-PRIV-MAINTAIN\"\u003e\u003ccode\u003eMAINTAIN\u003c/code\u003e\u003c/a\u003e 权限按表授予，也可以通过预定义角色 \u003ca href=\"/docs/17/predefined-roles.html\" title=\"21.5. 预定义角色\"\u003e\u003ccode\u003epg_maintain\u003c/code\u003e\u003c/a\u003e 按角色授予。允许的操作包括 \u003ccode\u003eVACUUM\u003c/code\u003e、\u003ccode\u003eANALYZE\u003c/code\u003e、\u003ccode\u003eREINDEX\u003c/code\u003e、\u003ccode\u003eREFRESH MATERIALIZED VIEW\u003c/code\u003e、\u003ccode\u003eCLUSTER\u003c/code\u003e 和 \u003ccode\u003eLOCK TABLE\u003c/code\u003e。\u003c/p\u003e","id":"17.0-4d8398c063d79d83","identity_text":"Allow granting the right to perform maintenance operations (Nathan Bossart) The permission can be granted on a per-table basis using the MAINTAIN privilege and on a per-role basis via the pg_maintain predefined role. Permitted operations are VACUUM, ANALYZE, REINDEX, REFRESH MATERIALIZED VIEW, CLUSTER, and LOCK TABLE.","part":"changes","patch_ids":["aa0b503bc887127b8e5d3149c16e07e0"],"related_changes":[],"relations":[],"section":"服务器 / 权限","section_path":["服务器","权限"],"source_commits":["ecb0fd337"],"source_entry_id":"17.0/changes/031","source_hash":"1d5e47f964ed6d3c4db011ee49c95929bb92fe66f0dc0079b44508d70c910573","source_url":"/docs/release/17.0/#RELEASE-17-PRIVILEGES","statement_hash":"fbeffe8eb5d4d5b6245edb61861482563d36590033be7d0d70030a552a3060a6","text":"允许授予执行维护操作的权限（Nathan Bossart）§ 该权限可以通过 MAINTAIN 权限按表授予，也可以通过预定义角色 pg_maintain 按角色授予。允许的操作包括 VACUUM、ANALYZE、REINDEX、REFRESH MATERIALIZED VIEW、CLUSTER 和 LOCK TABLE。","title":"允许授予执行维护操作的权限","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["8d8afd48d"],"commit_groups":[["8d8afd48d"]],"commits":["8d8afd48d"],"cves":[],"db_id":"be8e2a4581679bfeccefddd4e31fb152","html":"\u003cp\u003e允许拥有 \u003ca href=\"/docs/17/predefined-roles.html\" title=\"21.5. 预定义角色\"\u003e\u003ccode\u003epg_monitor\u003c/code\u003e\u003c/a\u003e 成员资格的角色执行 \u003ca href=\"/docs/17/functions-info.html#FUNCTIONS-INFO-SESSION-TABLE\" title=\"表 9.69. 会话信息函数\"\u003e\u003ccode\u003epg_current_logfile()\u003c/code\u003e\u003c/a\u003e（Pavlo Golub, Nathan Bossart）\u003ca href=\"https://postgr.es/c/8d8afd48d\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-c36635dc495463b8","identity_text":"Allow roles with pg_monitor membership to execute pg_current_logfile() (Pavlo Golub, Nathan Bossart)","part":"changes","patch_ids":["57582ff9912b3675cea8b711467c32f9"],"related_changes":[],"relations":[],"section":"服务器 / 权限","section_path":["服务器","权限"],"source_commits":["8d8afd48d"],"source_entry_id":"17.0/changes/032","source_hash":"2d6c7cb9d2c173633f6483c902dd8d68d8d9c2a9a31987a180db5fcce92f59d6","source_url":"/docs/release/17.0/#RELEASE-17-PRIVILEGES","statement_hash":"4b700a41fc70986c9af65fcbfa4bc4b6947ef052353d2930f51bbbd63c125f38","text":"允许拥有 pg_monitor 成员资格的角色执行 pg_current_logfile()（Pavlo Golub, Nathan Bossart）§","title":"允许拥有 pg_monitor 成员资格的角色执行 pg_current_logfile()","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["d3ae2a24f"],"commit_groups":[["d3ae2a24f"]],"commits":["d3ae2a24f"],"cves":[],"db_id":"335f4d3b5a3daa9f992752bf2706358a","html":"\u003cp\u003e添加系统变量\u003ca href=\"/docs/17/runtime-config-compatible.html#GUC-ALLOW-ALTER-SYSTEM\"\u003eallow_alter_system\u003c/a\u003e，以禁止 \u003ca href=\"/docs/17/sql-altersystem.html\" title=\"ALTER SYSTEM\"\u003e\u003ccode\u003eALTER SYSTEM\u003c/code\u003e\u003c/a\u003e（Jelte Fennema-Nio, Gabriele Bartolini）\u003ca href=\"https://postgr.es/c/d3ae2a24f\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-5ba1de59b0d7de2a","identity_text":"Add system variable guc-allow-alter-system to disallow ALTER SYSTEM (Jelte Fennema-Nio, Gabriele Bartolini)","part":"changes","patch_ids":["f07abd4c68f23ba492eb27978c766e3b"],"related_changes":[],"relations":[],"section":"服务器 / 服务器配置","section_path":["服务器","服务器配置"],"source_commits":["d3ae2a24f"],"source_entry_id":"17.0/changes/033","source_hash":"88f6127163180e0ee409226148bb35afa26ada14b246c3a228571a4ed17c822e","source_url":"/docs/release/17.0/#RELEASE-17-SERVER-CONFIG","statement_hash":"a19a91db051058837f8011545c9f3ca2adc6e84f1672ee35bbaa8ab0a4d3c9b6","text":"添加系统变量allow_alter_system，以禁止 ALTER SYSTEM（Jelte Fennema-Nio, Gabriele Bartolini）§","title":"添加系统变量allow_alter_system，以禁止 ALTER SYSTEM","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["2d870b4ae"],"commit_groups":[["2d870b4ae"]],"commits":["2d870b4ae"],"cves":[],"db_id":"18f85cfff077cc490ddbf8bbe52f2412","html":"\u003cp\u003e允许 \u003ca href=\"/docs/17/sql-altersystem.html\" title=\"ALTER SYSTEM\"\u003e\u003ccode\u003eALTER SYSTEM\u003c/code\u003e\u003c/a\u003e 设置未识别的自定义服务器变量（Tom Lane）\u003ca href=\"https://postgr.es/c/2d870b4ae\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这也可以通过 \u003ca href=\"/docs/17/sql-grant.html\" title=\"GRANT\"\u003e\u003ccode\u003eGRANT ON PARAMETER\u003c/code\u003e\u003c/a\u003e 实现。\u003c/p\u003e","id":"17.0-7915ee0b2bac2b4f","identity_text":"Allow ALTER SYSTEM to set unrecognized custom server variables (Tom Lane) This is also possible with GRANT ON PARAMETER.","part":"changes","patch_ids":["0814af1fa093fb0ae26328d389428103"],"related_changes":[],"relations":[],"section":"服务器 / 服务器配置","section_path":["服务器","服务器配置"],"source_commits":["2d870b4ae"],"source_entry_id":"17.0/changes/034","source_hash":"5f355187378d93868a4a735da861f0b9756a645332b772d73b1a693de5a16923","source_url":"/docs/release/17.0/#RELEASE-17-SERVER-CONFIG","statement_hash":"81b4c4a9af4b2cc85dac9d6228b2b19809d7bf4f1c7c31ea9113f4c316922600","text":"允许 ALTER SYSTEM 设置未识别的自定义服务器变量（Tom Lane）§ 这也可以通过 GRANT ON PARAMETER 实现。","title":"允许 ALTER SYSTEM 设置未识别的自定义服务器变量","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["28e858c0f","51efe38cb","bf82f4379"],"commit_groups":[["28e858c0f"],["51efe38cb"],["bf82f4379"]],"commits":["28e858c0f","51efe38cb","bf82f4379"],"cves":[],"db_id":"718259631ded99b83361d9b63bd7fc36","html":"\u003cp\u003e添加服务器变量\u003ca href=\"/docs/17/runtime-config-client.html#GUC-TRANSACTION-TIMEOUT\"\u003etransaction_timeout\u003c/a\u003e，以限制事务持续时间（Andrey Borodin, Japin Li, Junwang Zhao, Alexander Korotkov）\u003ca href=\"https://postgr.es/c/51efe38cb\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/bf82f4379\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/28e858c0f\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-0efb5f0f3651ed18","identity_text":"Add server variable guc-transaction-timeout to restrict the duration of transactions (Andrey Borodin, Japin Li, Junwang Zhao, Alexander Korotkov)","part":"changes","patch_ids":["0c1e32e9c9b95597272ee20eaf39589f","87004e34539666104318fc5a57fe0afa","ffd30a9d40012c5126cd91352005d8de"],"related_changes":[],"relations":[],"section":"服务器 / 服务器配置","section_path":["服务器","服务器配置"],"source_commits":["28e858c0f","51efe38cb","bf82f4379"],"source_entry_id":"17.0/changes/035","source_hash":"7efb34482473dc8d860ad251f06b16387566a0c5cecbacc45c4847699d4eca42","source_url":"/docs/release/17.0/#RELEASE-17-SERVER-CONFIG","statement_hash":"72d219d30d9e9405506944e5452bf1f7437dd8c634c2e7e22989da39ad97a388","text":"添加服务器变量transaction_timeout，以限制事务持续时间（Andrey Borodin, Japin Li, Junwang Zhao, Alexander Korotkov）§ § §","title":"添加服务器变量transaction_timeout，以限制事务持续时间","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["2d819a08a","846311051","9acae56ce","f69319f2f"],"commit_groups":[["2d819a08a"],["846311051"],["9acae56ce"],["f69319f2f"]],"commits":["2d819a08a","846311051","9acae56ce","f69319f2f"],"cves":[],"db_id":"80852fc36fa7987f1b089fc75f650204","html":"\u003cp\u003e添加内置的平台无关排序规则提供者（Jeff Davis）\u003ca href=\"https://postgr.es/c/2d819a08a\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/846311051\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/f69319f2f\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/9acae56ce\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这支持 \u003ccode\u003eC\u003c/code\u003e 和 \u003ccode\u003eC.UTF-8\u003c/code\u003e 排序规则。\u003c/p\u003e","id":"17.0-e062739079980155","identity_text":"Add a builtin platform-independent collation provider (Jeff Davis) This supports C and C.UTF-8 collations.","part":"changes","patch_ids":["77be7335caaca5f9f06322d0797dda16","81b6c4acbac9af2cc2bfef96cfd4b979","c6ec2a1be78682d39fea62d97b958f98","d64c324506fdd1d1f8e1dd79d3f4cfbe"],"related_changes":[],"relations":[],"section":"服务器 / 服务器配置","section_path":["服务器","服务器配置"],"source_commits":["2d819a08a","846311051","9acae56ce","f69319f2f"],"source_entry_id":"17.0/changes/036","source_hash":"15e2a4736d4126ffb9a59333bece9b7c6bb80c6464d093d609cead3be54ea0bc","source_url":"/docs/release/17.0/#RELEASE-17-SERVER-CONFIG","statement_hash":"fbdf39f367ad8a7a21b34d7dc4dc5678b7f15eb4badce77f508c44b61e86d345","text":"添加内置的平台无关排序规则提供者（Jeff Davis）§ § § § 这支持 C 和 C.UTF-8 排序规则。","title":"添加内置的平台无关排序规则提供者","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["a14354cac"],"commit_groups":[["a14354cac"]],"commits":["a14354cac"],"cves":[],"db_id":"586987595a4170d7f74933b5f5dd5a46","html":"\u003cp\u003e添加服务器变量\u003ca href=\"/docs/17/runtime-config-preset.html#GUC-HUGE-PAGES-STATUS\"\u003ehuge_pages_status\u003c/a\u003e，用于报告 Postgres 对 huge pages 的使用情况（Justin Pryzby）\u003ca href=\"https://postgr.es/c/a14354cac\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e当\u003ca href=\"/docs/17/runtime-config-resource.html#GUC-HUGE-PAGES\"\u003ehuge_pages\u003c/a\u003e设置为 \u003ccode\u003etry\u003c/code\u003e 时，这很有用。\u003c/p\u003e","id":"17.0-21b14577a5530135","identity_text":"Add server variable guc-huge-pages-status to report the use of huge pages by Postgres (Justin Pryzby) This is useful when guc-huge-pages is set to try.","part":"changes","patch_ids":["89c68b0b4082f533e10998c466dd35b6"],"related_changes":[],"relations":[],"section":"服务器 / 服务器配置","section_path":["服务器","服务器配置"],"source_commits":["a14354cac"],"source_entry_id":"17.0/changes/037","source_hash":"122def5713c23eca2319d4626106646ed060bb64889d75fb851f397cb0ca7aff","source_url":"/docs/release/17.0/#RELEASE-17-SERVER-CONFIG","statement_hash":"9a20765c86381cbf363b707e1acc20d471444cfb30caed24a1ba11b2246d2dd7","text":"添加服务器变量huge_pages_status，用于报告 Postgres 对 huge pages 的使用情况（Justin Pryzby）§ 当huge_pages设置为 try 时，这很有用。","title":"添加服务器变量huge_pages_status，用于报告 Postgres 对 huge pages 的使用情况","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["7750fefdb"],"commit_groups":[["7750fefdb"]],"commits":["7750fefdb"],"cves":[],"db_id":"4b72618efd9956e3f676b7b80a796d3f","html":"\u003cp\u003e添加用于禁用事件触发器的服务器变量（Daniel Gustafsson）\u003ca href=\"https://postgr.es/c/7750fefdb\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e该设置\u003ca href=\"/docs/17/runtime-config-client.html#GUC-EVENT-TRIGGERS\"\u003eevent_triggers\u003c/a\u003e允许为调试目的临时禁用事件触发器。\u003c/p\u003e","id":"17.0-731c9e8a5142f36d","identity_text":"Add server variable to disable event triggers (Daniel Gustafsson) The setting, guc-event-triggers , allows for the temporary disabling of event triggers for debugging.","part":"changes","patch_ids":["8a7e47813e342e8c2228ebfe7fb76262"],"related_changes":[],"relations":[],"section":"服务器 / 服务器配置","section_path":["服务器","服务器配置"],"source_commits":["7750fefdb"],"source_entry_id":"17.0/changes/038","source_hash":"ce85c487050389af10d7375dba26b6b3636e76b8910d87d57f2ee1733b61b1e3","source_url":"/docs/release/17.0/#RELEASE-17-SERVER-CONFIG","statement_hash":"a78fa35cf15a5c3a4d0f75d835c41c9257e8b5eff0454787a9a089070f104ae2","text":"添加用于禁用事件触发器的服务器变量（Daniel Gustafsson）§ 该设置event_triggers允许为调试目的临时禁用事件触发器。","title":"添加用于禁用事件触发器的服务器变量","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["53c2a97a9"],"commit_groups":[["53c2a97a9"]],"commits":["53c2a97a9"],"cves":[],"db_id":"054128c86cceaeccedc6fb785d67772f","html":"\u003cp\u003e允许配置 \u003ca href=\"/docs/17/monitoring-stats.html#MONITORING-PG-STAT-SLRU-VIEW\" title=\"27.2.25. pg_stat_slru\"\u003e\u003cacronym\u003eSLRU\u003c/acronym\u003e\u003c/a\u003e 缓存大小（Andrey Borodin, Dilip Kumar, Alvaro Herrera）\u003ca href=\"https://postgr.es/c/53c2a97a9\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e新的服务器变量包括\u003ca href=\"/docs/17/runtime-config-resource.html#GUC-COMMIT-TIMESTAMP-BUFFERS\"\u003ecommit_timestamp_buffers\u003c/a\u003e、\u003ca href=\"/docs/17/runtime-config-resource.html#GUC-MULTIXACT-MEMBER-BUFFERS\"\u003emultixact_member_buffers\u003c/a\u003e、\u003ca href=\"/docs/17/runtime-config-resource.html#GUC-MULTIXACT-OFFSET-BUFFERS\"\u003emultixact_offset_buffers\u003c/a\u003e、\u003ca href=\"/docs/17/runtime-config-resource.html#GUC-NOTIFY-BUFFERS\"\u003enotify_buffers\u003c/a\u003e、\u003ca href=\"/docs/17/runtime-config-resource.html#GUC-SERIALIZABLE-BUFFERS\"\u003eserializable_buffers\u003c/a\u003e、\u003ca href=\"/docs/17/runtime-config-resource.html#GUC-SUBTRANSACTION-BUFFERS\"\u003esubtransaction_buffers\u003c/a\u003e和\u003ca href=\"/docs/17/runtime-config-resource.html#GUC-TRANSACTION-BUFFERS\"\u003etransaction_buffers\u003c/a\u003e。\u003ca href=\"/docs/17/runtime-config-resource.html#GUC-COMMIT-TIMESTAMP-BUFFERS\"\u003ecommit_timestamp_buffers\u003c/a\u003e、\u003ca href=\"/docs/17/runtime-config-resource.html#GUC-TRANSACTION-BUFFERS\"\u003etransaction_buffers\u003c/a\u003e以及\u003ca href=\"/docs/17/runtime-config-resource.html#GUC-SUBTRANSACTION-BUFFERS\"\u003esubtransaction_buffers\u003c/a\u003e会随着\u003ca href=\"/docs/17/runtime-config-resource.html#GUC-SHARED-BUFFERS\"\u003eshared_buffers\u003c/a\u003e自动扩展。\u003c/p\u003e","id":"17.0-f4a8d2364b8c4112","identity_text":"Allow the SLRU cache sizes to be configured (Andrey Borodin, Dilip Kumar, Alvaro Herrera) The new server variables are guc-commit-timestamp-buffers , guc-multixact-member-buffers , guc-multixact-offset-buffers , guc-notify-buffers , guc-serializable-buffers , guc-subtransaction-buffers , and guc-transaction-buffers . guc-commit-timestamp-buffers , guc-transaction-buffers , and guc-subtransaction-buffers scale up automatically with guc-shared-buffers .","part":"changes","patch_ids":["d22fe7881bafeca870baef76553a72ff"],"related_changes":[],"relations":[],"section":"服务器 / 服务器配置","section_path":["服务器","服务器配置"],"source_commits":["53c2a97a9"],"source_entry_id":"17.0/changes/039","source_hash":"6882b1afc0cfb0edf0a305155b1bfeee49505c75e159d2908fe7dded3370087d","source_url":"/docs/release/17.0/#RELEASE-17-SERVER-CONFIG","statement_hash":"7b33810afb851570f8c712e0489c6284bff4903bfc6947e2ceae3d857387e453","text":"允许配置 SLRU 缓存大小（Andrey Borodin, Dilip Kumar, Alvaro Herrera）§ 新的服务器变量包括commit_timestamp_buffers、multixact_member_buffers、multixact_offset_buffers、notify_buffers、serializable_buffers、subtransaction_buffers和transaction_buffers。commit_timestamp_buffers、transaction_buffers以及subtransaction_buffers会随着shared_buffers自动扩展。","title":"允许配置 SLRU 缓存大小","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["dc2123400","f8ce4ed78"],"commit_groups":[["dc2123400"],["f8ce4ed78"]],"commits":["dc2123400","f8ce4ed78"],"cves":[],"db_id":"908cc33787f32c9dcd434c9726b2a90a","html":"\u003cp\u003e添加对增量文件系统备份的支持（Robert Haas, Jakub Wartak, Tomas Vondra）\u003ca href=\"https://postgr.es/c/dc2123400\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/f8ce4ed78\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e可使用\u003ca href=\"/docs/17/app-pgbasebackup.html\" title=\"pg_basebackup\"\u003e\u003cspan\u003epg_basebackup\u003c/span\u003e\u003c/a\u003e的新 \u003ccode\u003e--incremental\u003c/code\u003e 选项创建增量备份。新的应用程序\u003ca href=\"/docs/17/app-pgcombinebackup.html\" title=\"pg_combinebackup\"\u003e\u003cspan\u003epg_combinebackup\u003c/span\u003e\u003c/a\u003e允许处理基础和增量文件系统备份。\u003c/p\u003e","id":"17.0-9e98f7b93fb6d8ea","identity_text":"Add support for incremental file system backup (Robert Haas, Jakub Wartak, Tomas Vondra) Incremental backups can be created using pg_basebackup's new --incremental option. The new application pg_combinebackup allows manipulation of base and incremental file system backups.","part":"changes","patch_ids":["141a067a67701032cf5092dd3dabd2d3","3a11cab0d645672e4c0425fc530066ea"],"related_changes":[],"relations":[],"section":"服务器 / 流复制与恢复","section_path":["服务器","流复制与恢复"],"source_commits":["dc2123400","f8ce4ed78"],"source_entry_id":"17.0/changes/040","source_hash":"53d4d6706e095584dad9b5a2c18559f1d8203b3a29895b8f3731da02db40d59c","source_url":"/docs/release/17.0/#RELEASE-17-REPLICATION","statement_hash":"76b76f7c699fb0ae8c99f721ad1e57cd1f5f3d11b1b1dc8d260d95046b38e08a","text":"添加对增量文件系统备份的支持（Robert Haas, Jakub Wartak, Tomas Vondra）§ § 可使用pg_basebackup的新 --incremental 选项创建增量备份。新的应用程序pg_combinebackup允许处理基础和增量文件系统备份。","title":"添加对增量文件系统备份的支持","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["174c48050","d97ef756a","d9ef650fc","f896057e4"],"commit_groups":[["174c48050"],["d97ef756a"],["d9ef650fc"],["f896057e4"]],"commits":["174c48050","d97ef756a","d9ef650fc","f896057e4"],"cves":[],"db_id":"3cfae481b9dc3952fd1d2d10c2226677","html":"\u003cp\u003e允许创建 \u003cacronym\u003eWAL\u003c/acronym\u003e 摘要文件（Robert Haas, Nathan Bossart, Hubert Depesz Lubaczewski）\u003ca href=\"https://postgr.es/c/174c48050\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/d97ef756a\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/f896057e4\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/d9ef650fc\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这些文件记录某个 \u003ca href=\"/docs/17/datatype-pg-lsn.html\" title=\"8.20. pg_lsn 类型\"\u003e\u003cacronym\u003eLSN\u003c/acronym\u003e\u003c/a\u003e 范围内发生变化的块号，对增量文件系统备份很有用。这由服务器变量\u003ca href=\"/docs/17/runtime-config-wal.html#GUC-SUMMARIZE-WAL\"\u003esummarize_wal\u003c/a\u003e和\u003ca href=\"/docs/17/runtime-config-wal.html#GUC-WAL-SUMMARY-KEEP-TIME\"\u003ewal_summary_keep_time\u003c/a\u003e控制，并可通过 \u003ca href=\"/docs/17/functions-info.html#FUNCTIONS-WAL-SUMMARY\" title=\"表 9.92. WAL 汇总信息函数\"\u003e\u003ccode\u003epg_available_wal_summaries()\u003c/code\u003e\u003c/a\u003e、\u003ccode\u003epg_wal_summary_contents()\u003c/code\u003e 和 \u003ccode\u003epg_get_wal_summarizer_state()\u003c/code\u003e 进行查看。\u003c/p\u003e","id":"17.0-d8db67c4766dcbd2","identity_text":"Allow the creation of WAL summarization files (Robert Haas, Nathan Bossart, Hubert Depesz Lubaczewski) These files record the block numbers that have changed within an LSN range and are useful for incremental file system backups. This is controlled by the server variables guc-summarize-wal and guc-wal-summary-keep-time , and introspected with pg_available_wal_summaries(), pg_wal_summary_contents(), and pg_get_wal_summarizer_state().","part":"changes","patch_ids":["0af30f6d76f12ddff15d80cbf3011abd","33f4516b6fa2cf93517d67160d2141ba","4872bf1a258073370c7c0f5e333d405b","8e2191b43c1299f8168150eaebfcc93f"],"related_changes":[],"relations":[],"section":"服务器 / 流复制与恢复","section_path":["服务器","流复制与恢复"],"source_commits":["174c48050","d97ef756a","d9ef650fc","f896057e4"],"source_entry_id":"17.0/changes/041","source_hash":"e957080e4a8ff4a994bf36bded8570d4e66a1f39225fc5ab1c66c981d9fa3797","source_url":"/docs/release/17.0/#RELEASE-17-REPLICATION","statement_hash":"36d2ae84e4b827b48279c35dd15f6e680f1ee0571436c70ceca91d3823845a52","text":"允许创建 WAL 摘要文件（Robert Haas, Nathan Bossart, Hubert Depesz Lubaczewski）§ § § § 这些文件记录某个 LSN 范围内发生变化的块号，对增量文件系统备份很有用。这由服务器变量summarize_wal和wal_summary_keep_time控制，并可通过 pg_available_wal_summaries()、pg_wal_summary_contents() 和 pg_get_wal_summarizer_state() 进行查看。","title":"允许创建 WAL 摘要文件","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["2041bc427"],"commit_groups":[["2041bc427"]],"commits":["2041bc427"],"cves":[],"db_id":"6e2a2dd91621a281b6443f6be9448cdf","html":"\u003cp\u003e将系统标识符添加到文件系统 \u003ca href=\"/docs/17/backup-manifest-format.html\" title=\"第 69 章 备份清单格式\"\u003ebackup manifest\u003c/a\u003e 文件中（Amul Sul）\u003ca href=\"https://postgr.es/c/2041bc427\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这有助于检测无效的 \u003cacronym\u003eWAL\u003c/acronym\u003e 使用。\u003c/p\u003e","id":"17.0-c087b4f1d9cedbdb","identity_text":"Add the system identifier to file system backup manifest files (Amul Sul) This helps detect invalid WAL usage.","part":"changes","patch_ids":["52e80dff2dc717149b68413fccf953b2"],"related_changes":[],"relations":[],"section":"服务器 / 流复制与恢复","section_path":["服务器","流复制与恢复"],"source_commits":["2041bc427"],"source_entry_id":"17.0/changes/042","source_hash":"39983d93905cbdf2473bf697e5107733e558dee8ca0ba47c7ab7360dd505aa78","source_url":"/docs/release/17.0/#RELEASE-17-REPLICATION","statement_hash":"2e6e5badf7c93a9f7c90153ea649e08320978b670481f36c4cdc885137c0f6dd","text":"将系统标识符添加到文件系统 backup manifest 文件中（Amul Sul）§ 这有助于检测无效的 WAL 使用。","title":"将系统标识符添加到文件系统 backup manifest 文件中","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["a145f424d"],"commit_groups":[["a145f424d"]],"commits":["a145f424d"],"cves":[],"db_id":"df5b4c592c2663c6b6b2966294706337","html":"\u003cp\u003e允许在\u003ca href=\"/docs/17/app-pgbasebackup.html\" title=\"pg_basebackup\"\u003e\u003cspan\u003epg_basebackup\u003c/span\u003e\u003c/a\u003e将连接信息写入 \u003ccode\u003epostgresql.auto.conf\u003c/code\u003e 时写入连接字符串值 \u003ccode\u003edbname\u003c/code\u003e（Vignesh C, Hayato Kuroda）\u003ca href=\"https://postgr.es/c/a145f424d\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-153d175118664d9f","identity_text":"Allow connection string value dbname to be written when pg_basebackup writes connection information to postgresql.auto.conf (Vignesh C, Hayato Kuroda)","part":"changes","patch_ids":["8a96c256ee8468512b69f6e4ee3bcbdd"],"related_changes":[],"relations":[],"section":"服务器 / 流复制与恢复","section_path":["服务器","流复制与恢复"],"source_commits":["a145f424d"],"source_entry_id":"17.0/changes/043","source_hash":"f5a4189f6ac58a70012aeb1c9a3ae0f4f7b551fa57b3ad15025326d9d6fd83e2","source_url":"/docs/release/17.0/#RELEASE-17-REPLICATION","statement_hash":"64810eaaeb8732246523d4b5acee711061833d0ccf9fdd227710930a3cdaaff0","text":"允许在pg_basebackup将连接信息写入 postgresql.auto.conf 时写入连接字符串值 dbname（Vignesh C, Hayato Kuroda）§","title":"允许在pg_basebackup将连接信息写入 postgresql.auto.conf 时写入连接字符串值 dbname","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["007693f2a","6ae701b43"],"commit_groups":[["007693f2a"],["6ae701b43"]],"commits":["007693f2a","6ae701b43"],"cves":[],"db_id":"bd3061007fc673bf70970dfbfeb55d08","html":"\u003cp\u003e添加列 \u003ca href=\"/docs/17/view-pg-replication-slots.html\" title=\"52.19. pg_replication_slots\"\u003e\u003ccode\u003epg_replication_slots\u003c/code\u003e.\u003ccode\u003einvalidation_reason\u003c/code\u003e\u003c/a\u003e，用于报告复制槽失效的原因（Shveta Malik, Bharath Rupireddy）\u003ca href=\"https://postgr.es/c/007693f2a\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/6ae701b43\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-636aaa579a0d8881","identity_text":"Add column pg_replication_slots.invalidation_reason to report the reason for invalid slots (Shveta Malik, Bharath Rupireddy)","part":"changes","patch_ids":["14f1da7973359b39660fcfe59ff48cc3","9d580829a5809c9b9aefa1a05bfa78db"],"related_changes":[],"relations":[],"section":"服务器 / 流复制与恢复","section_path":["服务器","流复制与恢复"],"source_commits":["007693f2a","6ae701b43"],"source_entry_id":"17.0/changes/044","source_hash":"b4d50c607aa978eeb579c940d2b9a4202a4f79fce246f9395d39eb3c77613e30","source_url":"/docs/release/17.0/#RELEASE-17-REPLICATION","statement_hash":"aa758625648221fad436441c83da92b6802fa94fe1303ac6dd667c9398f11d3c","text":"添加列 pg_replication_slots.invalidation_reason，用于报告复制槽失效的原因（Shveta Malik, Bharath Rupireddy）§ §","title":"添加列 pg_replication_slots.invalidation_reason，用于报告复制槽失效的原因","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["6d49c8d4b","6f132ed69","a11f330b5"],"commit_groups":[["6d49c8d4b"],["6f132ed69"],["a11f330b5"]],"commits":["6d49c8d4b","6f132ed69","a11f330b5"],"cves":[],"db_id":"126a2f45e2604951effe4cbcfe0a23b7","html":"\u003cp\u003e添加列 \u003ca href=\"/docs/17/view-pg-replication-slots.html\" title=\"52.19. pg_replication_slots\"\u003e\u003ccode\u003epg_replication_slots\u003c/code\u003e.\u003ccode\u003einactive_since\u003c/code\u003e\u003c/a\u003e，用于报告复制槽的不活动持续时间（Bharath Rupireddy）\u003ca href=\"https://postgr.es/c/a11f330b5\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/6d49c8d4b\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/6f132ed69\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-b088c75f386ad793","identity_text":"Add column pg_replication_slots.inactive_since to report slot inactivity duration (Bharath Rupireddy)","part":"changes","patch_ids":["2f2378cce9a4797a2821d495a96f9801","6fcb3b366bb79fbb49a97982b1a2fc2b","73c9f29784a3a938138ec4941147cfcf"],"related_changes":[],"relations":[],"section":"服务器 / 流复制与恢复","section_path":["服务器","流复制与恢复"],"source_commits":["6d49c8d4b","6f132ed69","a11f330b5"],"source_entry_id":"17.0/changes/045","source_hash":"fb1f343a4366739955feb77a80da72ed28de6d0979ac730dcb05d7746ebc9136","source_url":"/docs/release/17.0/#RELEASE-17-REPLICATION","statement_hash":"8c48bbb47f1e02c7dc5505daf8f2c291f211ce76a8c9e6ae6e8e7fde8a5c69ae","text":"添加列 pg_replication_slots.inactive_since，用于报告复制槽的不活动持续时间（Bharath Rupireddy）§ § §","title":"添加列 pg_replication_slots.inactive_since，用于报告复制槽的不活动持续时间","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["7a424ece4","ddd5f4f54"],"commit_groups":[["7a424ece4"],["ddd5f4f54"]],"commits":["7a424ece4","ddd5f4f54"],"cves":[],"db_id":"c8c655e14dfb4508100100546aec9853","html":"\u003cp\u003e添加函数 \u003ca href=\"/docs/17/functions-admin.html#FUNCTIONS-REPLICATION-TABLE\" title=\"表 9.99. 复制管理函数\"\u003e\u003ccode\u003epg_sync_replication_slots()\u003c/code\u003e\u003c/a\u003e，用于同步逻辑复制槽（Hou Zhijie, Shveta Malik, Ajin Cherian, Peter Eisentraut）\u003ca href=\"https://postgr.es/c/ddd5f4f54\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/7a424ece4\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-2cb5d647382b4800","identity_text":"Add function pg_sync_replication_slots() to synchronize logical replication slots (Hou Zhijie, Shveta Malik, Ajin Cherian, Peter Eisentraut)","part":"changes","patch_ids":["022fd912ba37827f2bcb9d18044894e2","4c4b9c78e0e2b2d68645e7cbcc7f4481"],"related_changes":[],"relations":[],"section":"服务器 / 流复制与恢复","section_path":["服务器","流复制与恢复"],"source_commits":["7a424ece4","ddd5f4f54"],"source_entry_id":"17.0/changes/046","source_hash":"b5fed7c2c4c64ce67b18c6f50300e9f3b7f9aa301d650bfd4939c1e7ba82c9ce","source_url":"/docs/release/17.0/#RELEASE-17-REPLICATION","statement_hash":"2d60afa777919cda9a60602da42951ed7b67aa6c9c464e127ff1e1c6c6b344b4","text":"添加函数 pg_sync_replication_slots()，用于同步逻辑复制槽（Hou Zhijie, Shveta Malik, Ajin Cherian, Peter Eisentraut）§ §","title":"添加函数 pg_sync_replication_slots()，用于同步逻辑复制槽","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["732924043"],"commit_groups":[["732924043"]],"commits":["732924043"],"cves":[],"db_id":"317f0c30f6256158bebb45c7506802f7","html":"\u003cp\u003e为\u003ca href=\"/docs/17/protocol-replication.html\" title=\"53.4. 流复制协议\"\u003e复制协议\u003c/a\u003e添加 \u003ccode\u003efailover\u003c/code\u003e 属性（Hou Zhijie, Shveta Malik）\u003ca href=\"https://postgr.es/c/732924043\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-68d1331960696226","identity_text":"Add the failover property to the replication protocol (Hou Zhijie, Shveta Malik)","part":"changes","patch_ids":["1051164f270319e76a0f1b5c258ff8ad"],"related_changes":[],"relations":[],"section":"服务器 / 流复制与恢复","section_path":["服务器","流复制与恢复"],"source_commits":["732924043"],"source_entry_id":"17.0/changes/047","source_hash":"829081c25bfc7a772b12a699f3842754e7d9fd439216f5f3fd71c5e06a225f39","source_url":"/docs/release/17.0/#RELEASE-17-REPLICATION","statement_hash":"a8f3ae3b1baea1a639b8ad1a9b0a8e51a9ee7511bf96da1149f50ce8d74c74ea","text":"为复制协议添加 failover 属性（Hou Zhijie, Shveta Malik）§","title":"为复制协议添加 failover 属性","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["d44032d01"],"commit_groups":[["d44032d01"]],"commits":["d44032d01"],"cves":[],"db_id":"25c38f5599c3ec62c0eeea763de804ba","html":"\u003cp\u003e添加应用程序\u003ca href=\"/docs/17/app-pgcreatesubscriber.html\" title=\"pg_createsubscriber\"\u003e\u003cspan\u003epg_createsubscriber\u003c/span\u003e\u003c/a\u003e，用于从物理备库创建逻辑副本（Euler Taveira）\u003ca href=\"https://postgr.es/c/d44032d01\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-a8e9fc312b39a889","identity_text":"Add application pg_createsubscriber to create a logical replica from a physical standby server (Euler Taveira)","part":"changes","patch_ids":["47f654ff6a5b0bbd918666de657a7f51"],"related_changes":[],"relations":[],"section":"服务器 / 逻辑复制","section_path":["服务器","逻辑复制"],"source_commits":["d44032d01"],"source_entry_id":"17.0/changes/048","source_hash":"466936f38be5f58de7511dcc6b9a38a2fa7ce4b6f585b83aeb6d6174060b0bee","source_url":"/docs/release/17.0/#RELEASE-17-LOGICAL","statement_hash":"81c9adee62ba1074dc6668d92855ea2f6c0131be9bd0c7162eacdc94aaebb777","text":"添加应用程序pg_createsubscriber，用于从物理备库创建逻辑副本（Euler Taveira）§","title":"添加应用程序pg_createsubscriber，用于从物理备库创建逻辑副本","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["29d0a77fa","9a17be1e2"],"commit_groups":[["29d0a77fa"],["9a17be1e2"]],"commits":["29d0a77fa","9a17be1e2"],"cves":[],"db_id":"e7e439b9160cab86c5bf72fcd5dc5ffd","html":"\u003cp\u003e让\u003ca href=\"/docs/17/pgupgrade.html\" title=\"pg_upgrade\"\u003e\u003cspan\u003epg_upgrade\u003c/span\u003e\u003c/a\u003e迁移有效的逻辑槽和订阅（Hayato Kuroda, Hou Zhijie, Vignesh C, Julien Rouhaud, Shlok Kyal）\u003ca href=\"https://postgr.es/c/29d0a77fa\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/9a17be1e2\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这使逻辑复制能够在升级后快速继续。此功能仅适用于版本为 17 或更高的旧 \u003cspan\u003ePostgreSQL\u003c/span\u003e 集簇。\u003c/p\u003e","id":"17.0-676ce7ec9d3c36a0","identity_text":"Have pg_upgrade migrate valid logical slots and subscriptions (Hayato Kuroda, Hou Zhijie, Vignesh C, Julien Rouhaud, Shlok Kyal) This allows logical replication to continue quickly after the upgrade. This only works for old PostgreSQL clusters that are version 17 or later.","part":"changes","patch_ids":["46c515d821dc69b7fb156f5163a38761","79d297e1202815a7d2282b5617914920"],"related_changes":[],"relations":[],"section":"服务器 / 逻辑复制","section_path":["服务器","逻辑复制"],"source_commits":["29d0a77fa","9a17be1e2"],"source_entry_id":"17.0/changes/049","source_hash":"54eeccdb18fb7fd67a8f61d23a838b094fd46401996f83cb044a29d7eaf1a0ee","source_url":"/docs/release/17.0/#RELEASE-17-LOGICAL","statement_hash":"46e644aff19fc32497f2502ae839da451b4b9e32e84dbac888aa1709a3b79c77","text":"让pg_upgrade迁移有效的逻辑槽和订阅（Hayato Kuroda, Hou Zhijie, Vignesh C, Julien Rouhaud, Shlok Kyal）§ § 这使逻辑复制能够在升级后快速继续。此功能仅适用于版本为 17 或更高的旧 PostgreSQL 集簇。","title":"让pg_upgrade迁移有效的逻辑槽和订阅","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["c393308b6"],"commit_groups":[["c393308b6"]],"commits":["c393308b6"],"cves":[],"db_id":"c4939635a2188cada37a365eaa1e2af1","html":"\u003cp\u003e启用\u003ca href=\"/docs/17/logical-replication-subscription.html#LOGICAL-REPLICATION-SUBSCRIPTION-SLOT\" title=\"29.2.1. 复制槽管理\"\u003e逻辑槽\u003c/a\u003e的故障切换（Hou Zhijie, Shveta Malik, Ajin Cherian）\u003ca href=\"https://postgr.es/c/c393308b6\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这由 \u003ca href=\"/docs/17/functions-admin.html#FUNCTIONS-REPLICATION-TABLE\" title=\"表 9.99. 复制管理函数\"\u003e\u003ccode\u003epg_create_logical_replication_slot()\u003c/code\u003e\u003c/a\u003e 的可选第五个参数控制。\u003c/p\u003e","id":"17.0-392db410b758d878","identity_text":"Enable the failover of logical slots (Hou Zhijie, Shveta Malik, Ajin Cherian) This is controlled by an optional fifth argument to pg_create_logical_replication_slot().","part":"changes","patch_ids":["1d32c3e59369bcbe8de6d58ee2057c83"],"related_changes":[],"relations":[],"section":"服务器 / 逻辑复制","section_path":["服务器","逻辑复制"],"source_commits":["c393308b6"],"source_entry_id":"17.0/changes/050","source_hash":"6c09d40ce378d69cf1f5bda41d75d34a0ca025cff0ed4c9ff925c761c0a5e4a0","source_url":"/docs/release/17.0/#RELEASE-17-LOGICAL","statement_hash":"22c84998971757d8e8e83c67a5d40bf26af401f87faf85fd76fde6184431a93b","text":"启用逻辑槽的故障切换（Hou Zhijie, Shveta Malik, Ajin Cherian）§ 这由 pg_create_logical_replication_slot() 的可选第五个参数控制。","title":"启用逻辑槽的故障切换","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["60c07820d","93db6cbda"],"commit_groups":[["60c07820d"],["93db6cbda"]],"commits":["60c07820d","93db6cbda"],"cves":[],"db_id":"8c343eb28e4f2f35de4c934ed2d348dd","html":"\u003cp\u003e添加服务器变量\u003ca href=\"/docs/17/runtime-config-replication.html#GUC-SYNC-REPLICATION-SLOTS\"\u003esync_replication_slots\u003c/a\u003e，以启用故障切换逻辑槽同步（Shveta Malik, Hou Zhijie, Peter Smith）\u003ca href=\"https://postgr.es/c/93db6cbda\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/60c07820d\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-a62654c344e7d77e","identity_text":"Add server variable guc-sync-replication-slots to enable failover logical slot synchronization (Shveta Malik, Hou Zhijie, Peter Smith)","part":"changes","patch_ids":["b4ecc525dca1d03b2e5b4a1d18beee57","fba3bec073133d9593881abc45607059"],"related_changes":[],"relations":[],"section":"服务器 / 逻辑复制","section_path":["服务器","逻辑复制"],"source_commits":["60c07820d","93db6cbda"],"source_entry_id":"17.0/changes/051","source_hash":"3b6b45c237569e305b5434b96d85bb7e0a91f8b2bc4067bf571e88ea587db648","source_url":"/docs/release/17.0/#RELEASE-17-LOGICAL","statement_hash":"7b1e99545e49529033cf741fef92e78b2ae8dec03c1ed72c0043d42df9329e2b","text":"添加服务器变量sync_replication_slots，以启用故障切换逻辑槽同步（Shveta Malik, Hou Zhijie, Peter Smith）§ §","title":"添加服务器变量sync_replication_slots，以启用故障切换逻辑槽同步","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["22f7e61a6","776621a5e"],"commit_groups":[["22f7e61a6"],["776621a5e"]],"commits":["22f7e61a6","776621a5e"],"cves":[],"db_id":"b57b9d35ac49f1dad946caf43d44dccb","html":"\u003cp\u003e为 \u003ca href=\"/docs/17/sql-createsubscription.html\" title=\"CREATE SUBSCRIPTION\"\u003e\u003ccode\u003eCREATE/ALTER SUBSCRIPTION\u003c/code\u003e\u003c/a\u003e 添加逻辑复制故障切换控制（Shveta Malik, Hou Zhijie, Ajin Cherian）\u003ca href=\"https://postgr.es/c/776621a5e\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/22f7e61a6\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-1ba2eafc920bdbc5","identity_text":"Add logical replication failover control to CREATE/ALTER SUBSCRIPTION (Shveta Malik, Hou Zhijie, Ajin Cherian)","part":"changes","patch_ids":["1c86d4f80cf36b4ce2a250316d3ebbbb","ec1cbeb637f1dbbdbee28255309d0095"],"related_changes":[],"relations":[],"section":"服务器 / 逻辑复制","section_path":["服务器","逻辑复制"],"source_commits":["22f7e61a6","776621a5e"],"source_entry_id":"17.0/changes/052","source_hash":"fba0b70d11bac81e64da7d9adec10f23720705b03184510436eeccdc310280f9","source_url":"/docs/release/17.0/#RELEASE-17-LOGICAL","statement_hash":"63f4112091a51dcc31b95c347053bafb3bf1cf99ffe39167b06483b874e87637","text":"为 CREATE/ALTER SUBSCRIPTION 添加逻辑复制故障切换控制（Shveta Malik, Hou Zhijie, Ajin Cherian）§ §","title":"为 CREATE/ALTER SUBSCRIPTION 添加逻辑复制故障切换控制","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["edca34243"],"commit_groups":[["edca34243"]],"commits":["edca34243"],"cves":[],"db_id":"76c2b77af322eb64cca203b894ae4987","html":"\u003cp\u003e允许逻辑复制变更的应用在订阅端使用 \u003ca href=\"/docs/17/hash-index.html\" title=\"64.6. Hash 索引\"\u003ehash\u003c/a\u003e 索引（Hayato Kuroda）\u003ca href=\"https://postgr.es/c/edca34243\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e以前只有 \u003ca href=\"/docs/17/btree.html\" title=\"64.1. B-树索引\"\u003eB-树\u003c/a\u003e索引可用于此目的。\u003c/p\u003e","id":"17.0-1dc2d47442902d7d","identity_text":"Allow the application of logical replication changes to use hash indexes on the subscriber (Hayato Kuroda) Previously only btree indexes could be used for this purpose.","part":"changes","patch_ids":["351f3ecff1d2ec06824ce82da89bc8e7"],"related_changes":[],"relations":[],"section":"服务器 / 逻辑复制","section_path":["服务器","逻辑复制"],"source_commits":["edca34243"],"source_entry_id":"17.0/changes/053","source_hash":"52806172c8b6b609ed02f1b2331d1102a79c1f1a6a976e074e106a8f623b4840","source_url":"/docs/release/17.0/#RELEASE-17-LOGICAL","statement_hash":"643d4371972dca0ee68c4fbe7f82ef7dfa333aa939596a5e3f11c623ad9724a0","text":"允许逻辑复制变更的应用在订阅端使用 hash 索引（Hayato Kuroda）§ 以前只有 B-树索引可用于此目的。","title":"允许逻辑复制变更的应用在订阅端使用 hash 索引","variants":[],"version":"17.0"},{"also_in":[],"category":"performance","category_label":"Performance","commit_aliases":["5bec1d6bc"],"commit_groups":[["5bec1d6bc"]],"commits":["5bec1d6bc"],"cves":[],"db_id":"13e9e56d75399c0a3d2a68e52c334106","html":"\u003cp\u003e改进在存在大量子事务时\u003ca href=\"/docs/17/logicaldecoding.html\" title=\"第 47 章 逻辑解码\"\u003e逻辑解码\u003c/a\u003e的性能（Masahiko Sawada）\u003ca href=\"https://postgr.es/c/5bec1d6bc\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-01dbae7271ee7b5d","identity_text":"Improve logical decoding performance in cases where there are many subtransactions (Masahiko Sawada)","part":"changes","patch_ids":["3790ad2bce6b204989db4719e2fe2d72"],"related_changes":[],"relations":[],"section":"服务器 / 逻辑复制","section_path":["服务器","逻辑复制"],"source_commits":["5bec1d6bc"],"source_entry_id":"17.0/changes/054","source_hash":"907b0bb80ba99cfe8b07a8ecdc8cac23e9cd50d50d62860fbc58de910fd10091","source_url":"/docs/release/17.0/#RELEASE-17-LOGICAL","statement_hash":"72c2381cddbfa5a317e6d3bbf449f9d9c82a35ed6b428c4b5f6d7a262eb800ec","text":"改进在存在大量子事务时逻辑解码的性能（Masahiko Sawada）§","title":"改进在存在大量子事务时逻辑解码的性能","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["79243de13"],"commit_groups":[["79243de13"]],"commits":["79243de13"],"cves":[],"db_id":"4545b17ab8113547542da114c77d5573","html":"\u003cp\u003e如果撤销订阅所有者的超级用户权限，则重启应用工作进程（Vignesh C）\u003ca href=\"https://postgr.es/c/79243de13\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这会强制重新认证。\u003c/p\u003e","id":"17.0-7d8a57f2a06fe4c7","identity_text":"Restart apply workers if subscription owner's superuser privileges are revoked (Vignesh C) This forces reauthentication.","part":"changes","patch_ids":["64d8f5d679a4beaf4606e9c3ef1d7e5a"],"related_changes":[],"relations":[],"section":"服务器 / 逻辑复制","section_path":["服务器","逻辑复制"],"source_commits":["79243de13"],"source_entry_id":"17.0/changes/055","source_hash":"f8f586d461a36e84ccd0c5fb60653e1130c50a1b5022a7f721796654600851cb","source_url":"/docs/release/17.0/#RELEASE-17-LOGICAL","statement_hash":"b2198c55fb50f158b72cadb4b806fc3ca139464035a44556ba7aa7f47684a3f3","text":"如果撤销订阅所有者的超级用户权限，则重启应用工作进程（Vignesh C）§ 这会强制重新认证。","title":"如果撤销订阅所有者的超级用户权限，则重启应用工作进程","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["173b56f1e"],"commit_groups":[["173b56f1e"]],"commits":["173b56f1e"],"cves":[],"db_id":"d85be09c70a59028ea78df7318a28627","html":"\u003cp\u003e为 \u003ca href=\"/docs/17/functions-admin.html#FUNCTIONS-REPLICATION-TABLE\" title=\"表 9.99. 复制管理函数\"\u003e\u003ccode\u003epg_logical_emit_message()\u003c/code\u003e\u003c/a\u003e 添加 \u003ccode\u003eflush\u003c/code\u003e 选项（Michael Paquier）\u003ca href=\"https://postgr.es/c/173b56f1e\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这会使该消息具有持久性。\u003c/p\u003e","id":"17.0-b66a05a4072c8a24","identity_text":"Add flush option to pg_logical_emit_message() (Michael Paquier) This makes the message durable.","part":"changes","patch_ids":["d5627808d42f38ca807d7013e994b1ab"],"related_changes":[],"relations":[],"section":"服务器 / 逻辑复制","section_path":["服务器","逻辑复制"],"source_commits":["173b56f1e"],"source_entry_id":"17.0/changes/056","source_hash":"7d9eb5bcd667d310d84bd4d4bdb365d37eaba933d0549184f7f8c8cbf6756991","source_url":"/docs/release/17.0/#RELEASE-17-LOGICAL","statement_hash":"dd1b3a50f262acdfeeacf766d8d2e1f81b58a5231666d1eb453b6183a1864e25","text":"为 pg_logical_emit_message() 添加 flush 选项（Michael Paquier）§ 这会使该消息具有持久性。","title":"为 pg_logical_emit_message() 添加 flush 选项","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["0f934b073","bf279ddd1"],"commit_groups":[["0f934b073"],["bf279ddd1"]],"commits":["0f934b073","bf279ddd1"],"cves":[],"db_id":"402fd0f262a268f27c9aeff2183e2b1a","html":"\u003cp\u003e允许指定在对订阅者可见之前必须先完成同步的物理备库（Hou Zhijie, Shveta Malik）\u003ca href=\"https://postgr.es/c/bf279ddd1\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/0f934b073\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e新的服务器变量是\u003ca href=\"/docs/17/runtime-config-replication.html#GUC-SYNCHRONIZED-STANDBY-SLOTS\"\u003esynchronized_standby_slots\u003c/a\u003e。\u003c/p\u003e","id":"17.0-b2fec9bbe6071300","identity_text":"Allow specification of physical standbys that must be synchronized before they are visible to subscribers (Hou Zhijie, Shveta Malik) The new server variable is guc-synchronized-standby-slots .","part":"changes","patch_ids":["cab42c75bbb23030aff44fe28f8e1061","e4760edb9a3eb2b2cf4a7e394e971890"],"related_changes":[],"relations":[],"section":"服务器 / 逻辑复制","section_path":["服务器","逻辑复制"],"source_commits":["0f934b073","bf279ddd1"],"source_entry_id":"17.0/changes/057","source_hash":"7bd3441fcd067f84b47d6bc29c7425094a0590e6a7ef421e0c3529aa20ee405d","source_url":"/docs/release/17.0/#RELEASE-17-LOGICAL","statement_hash":"8c320dd8759eeefe5c2d2126ca9614de88a131911aff182ecd7ff84a1e5f8de5","text":"允许指定在对订阅者可见之前必须先完成同步的物理备库（Hou Zhijie, Shveta Malik）§ § 新的服务器变量是synchronized_standby_slots。","title":"允许指定在对订阅者可见之前必须先完成同步的物理备库","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["13aeaf079"],"commit_groups":[["13aeaf079"]],"commits":["13aeaf079"],"cves":[],"db_id":"c96da6b6d0807ab405a7877449d5df44","html":"\u003cp\u003e为 \u003ca href=\"/docs/17/monitoring-stats.html#MONITORING-PG-STAT-SUBSCRIPTION\" title=\"27.2.8. pg_stat_subscription\"\u003e\u003ccode\u003epg_stat_subscription\u003c/code\u003e\u003c/a\u003e 添加工作进程类型列（Peter Smith）\u003ca href=\"https://postgr.es/c/13aeaf079\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-88a693b64faf728c","identity_text":"Add worker type column to pg_stat_subscription (Peter Smith)","part":"changes","patch_ids":["b137ed957df07f42c12c231224879bfc"],"related_changes":[],"relations":[],"section":"服务器 / 逻辑复制","section_path":["服务器","逻辑复制"],"source_commits":["13aeaf079"],"source_entry_id":"17.0/changes/058","source_hash":"ef53508d9036941925e4ac87c43c0e354ec1f40b043bf70d3e34cca564e4fe88","source_url":"/docs/release/17.0/#RELEASE-17-LOGICAL","statement_hash":"d3ed7f8916271e01e9a6d5ab15de3383836a50a244709a8381d8cd2901e5d50f","text":"为 pg_stat_subscription 添加工作进程类型列（Peter Smith）§","title":"为 pg_stat_subscription 添加工作进程类型列","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["40bbc8cf0","9e2d87011","a6d0fa5ef","b725b7eec"],"commit_groups":[["40bbc8cf0"],["9e2d87011"],["a6d0fa5ef"],["b725b7eec"]],"commits":["40bbc8cf0","9e2d87011","a6d0fa5ef","b725b7eec"],"cves":[],"db_id":"365709962f047e6f729f62ea0f2866a1","html":"\u003cp\u003e添加新的 \u003ca href=\"/docs/17/sql-copy.html\" title=\"COPY\"\u003e\u003ccode\u003eCOPY\u003c/code\u003e\u003c/a\u003e 选项 \u003ccode\u003eON_ERROR ignore\u003c/code\u003e，用于丢弃错误行（Damir Belyalov, Atsushi Torikoshi, Alex Shulgin, Jian He, Yugo Nagata）\u003ca href=\"https://postgr.es/c/9e2d87011\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/b725b7eec\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/40bbc8cf0\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/a6d0fa5ef\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e默认行为是 \u003ccode\u003eON_ERROR stop\u003c/code\u003e。\u003c/p\u003e","id":"17.0-0b465e28b7772a91","identity_text":"Add new COPY option ON_ERROR ignore to discard error rows (Damir Belyalov, Atsushi Torikoshi, Alex Shulgin, Jian He, Yugo Nagata) The default behavior is ON_ERROR stop.","part":"changes","patch_ids":["5c73418a2456682094c6ccabeca20104","a6abd373ab86aa7d6b820b6866590914","b9446bd4b0350ff0915cb348599fc516","c33ab49aa06c6ed448604bd209dbf660"],"related_changes":[],"relations":[],"section":"工具命令","section_path":["工具命令"],"source_commits":["40bbc8cf0","9e2d87011","a6d0fa5ef","b725b7eec"],"source_entry_id":"17.0/changes/059","source_hash":"4173f286dab7721379678db6b89f9e4dd7efdb2bd28ab37da9c190ba8e5de82d","source_url":"/docs/release/17.0/#RELEASE-17-UTILITY","statement_hash":"cf2016041c04a6ad7e46adaca307bfdcb3b9661648c9a993b89be6af96e3a0be","text":"添加新的 COPY 选项 ON_ERROR ignore，用于丢弃错误行（Damir Belyalov, Atsushi Torikoshi, Alex Shulgin, Jian He, Yugo Nagata）§ § § § 默认行为是 ON_ERROR stop。","title":"添加新的 COPY 选项 ON_ERROR ignore，用于丢弃错误行","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["f5a227895"],"commit_groups":[["f5a227895"]],"commits":["f5a227895"],"cves":[],"db_id":"8f4240a426fab219d05af381844421c5","html":"\u003cp\u003e添加新的 \u003ccode\u003eCOPY\u003c/code\u003e 选项 \u003ccode\u003eLOG_VERBOSITY\u003c/code\u003e，用于报告 \u003ccode\u003eCOPY FROM\u003c/code\u003e 忽略的错误行（Bharath Rupireddy）\u003ca href=\"https://postgr.es/c/f5a227895\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-9cd9df2cea85ffd0","identity_text":"Add new COPY option LOG_VERBOSITY which reports COPY FROM ignored error rows (Bharath Rupireddy)","part":"changes","patch_ids":["7a12c77d052db950b856e11512ade308"],"related_changes":[],"relations":[],"section":"工具命令","section_path":["工具命令"],"source_commits":["f5a227895"],"source_entry_id":"17.0/changes/060","source_hash":"1bd4a48d8505938fe39646bdc806f5ddebf0f4045cc37d48c9a7b53212d1266e","source_url":"/docs/release/17.0/#RELEASE-17-UTILITY","statement_hash":"74d16a0eee3425bd37b740054702560b393ffe40b0238c59371faca7a8b53447","text":"添加新的 COPY 选项 LOG_VERBOSITY，用于报告 COPY FROM 忽略的错误行（Bharath Rupireddy）§","title":"添加新的 COPY 选项 LOG_VERBOSITY，用于报告 COPY FROM 忽略的错误行","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["729439607"],"commit_groups":[["729439607"]],"commits":["729439607"],"cves":[],"db_id":"d5cb9bc41572f0e8d078f64daf384557","html":"\u003cp\u003e允许 \u003ccode\u003eCOPY FROM\u003c/code\u003e 在处理期间报告被跳过的行数（Atsushi Torikoshi）\u003ca href=\"https://postgr.es/c/729439607\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这显示在系统视图列 \u003ca href=\"/docs/17/progress-reporting.html#COPY-PROGRESS-REPORTING\" title=\"27.4.3. COPY 进度报告\"\u003e\u003ccode\u003epg_stat_progress_copy\u003c/code\u003e.\u003ccode\u003etuples_skipped\u003c/code\u003e\u003c/a\u003e 中。\u003c/p\u003e","id":"17.0-8b7664f25d04be5c","identity_text":"Allow COPY FROM to report the number of skipped rows during processing (Atsushi Torikoshi) This appears in system view column pg_stat_progress_copy.tuples_skipped.","part":"changes","patch_ids":["0afc944187e2b98a0c4a4ef02ac871e6"],"related_changes":[],"relations":[],"section":"工具命令","section_path":["工具命令"],"source_commits":["729439607"],"source_entry_id":"17.0/changes/061","source_hash":"7d4933ce512bec16cb37b9929e1c88b8f0545988d1749e3607e708eb39da256d","source_url":"/docs/release/17.0/#RELEASE-17-UTILITY","statement_hash":"959f6a9f3d8f9f5b976eaf5c9a2aae915b1859e65354db8dd2a786312e33a3ee","text":"允许 COPY FROM 在处理期间报告被跳过的行数（Atsushi Torikoshi）§ 这显示在系统视图列 pg_stat_progress_copy.tuples_skipped 中。","title":"允许 COPY FROM 在处理期间报告被跳过的行数","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["f6d4c9cf1"],"commit_groups":[["f6d4c9cf1"]],"commits":["f6d4c9cf1"],"cves":[],"db_id":"263d1d0cc371d97f055522d42beb04a7","html":"\u003cp\u003e在 \u003ccode\u003eCOPY FROM\u003c/code\u003e 中，允许方便地指定所有列都应被强制设为 null 或 not null（Zhang Mingli）\u003ca href=\"https://postgr.es/c/f6d4c9cf1\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-fed8ea398f2597e2","identity_text":"In COPY FROM, allow easy specification that all columns should be forced null or not null (Zhang Mingli)","part":"changes","patch_ids":["0f2ac90c75aba410d511036497a989ce"],"related_changes":[],"relations":[],"section":"工具命令","section_path":["工具命令"],"source_commits":["f6d4c9cf1"],"source_entry_id":"17.0/changes/062","source_hash":"e1ea6d6d63d884aae7ed748ba25f75f44970323bbd153b7d9ba78f8ba6e80d88","source_url":"/docs/release/17.0/#RELEASE-17-UTILITY","statement_hash":"9849b1a30dd7f31662322117df5348b5e8e969812ede23c4edb861b3daeafeee","text":"在 COPY FROM 中，允许方便地指定所有列都应被强制设为 null 或 not null（Zhang Mingli）§","title":"在 COPY FROM 中，允许方便地指定所有列都应被强制设为 null 或 not null","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["699586315"],"commit_groups":[["699586315"]],"commits":["699586315"],"cves":[],"db_id":"d68483b69562373262a0bcbf0eb8f379","html":"\u003cp\u003e允许分区表拥有标识列（Ashutosh Bapat）\u003ca href=\"https://postgr.es/c/699586315\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-f894aedbe8966c4b","identity_text":"Allow partitioned tables to have identity columns (Ashutosh Bapat)","part":"changes","patch_ids":["e223295279c5c1549441d329e725f1f5"],"related_changes":[],"relations":[],"section":"工具命令","section_path":["工具命令"],"source_commits":["699586315"],"source_entry_id":"17.0/changes/063","source_hash":"d6773ffc45256b40173b8f32f1599e692da3f22be3112807add72e473449cee7","source_url":"/docs/release/17.0/#RELEASE-17-UTILITY","statement_hash":"0c352aff4194ec7d6aa8b23e700fce9724023fec4040a6c696163d485698550f","text":"允许分区表拥有标识列（Ashutosh Bapat）§","title":"允许分区表拥有标识列","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["8c852ba9a"],"commit_groups":[["8c852ba9a"]],"commits":["8c852ba9a"],"cves":[],"db_id":"a6d414dedb1f3a32209a6d5c975f9fd3","html":"\u003cp\u003e允许在分区表上使用\u003ca href=\"/docs/17/ddl-constraints.html#DDL-CONSTRAINTS-EXCLUSION\" title=\"5.5.6. 排他约束\"\u003e排他约束\u003c/a\u003e（Paul A. Jungwirth）\u003ca href=\"https://postgr.es/c/8c852ba9a\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e只要排他约束以相等比较分区键列，其他列就可以使用排他约束特有的比较方式。\u003c/p\u003e","id":"17.0-ffa1a9847a50964b","identity_text":"Allow exclusion constraints on partitioned tables (Paul A. Jungwirth) As long as exclusion constraints compare partition key columns for equality, other columns can use exclusion constraint-specific comparisons.","part":"changes","patch_ids":["171e5b635a45df92bbdf17f0e9771da3"],"related_changes":[],"relations":[],"section":"工具命令","section_path":["工具命令"],"source_commits":["8c852ba9a"],"source_entry_id":"17.0/changes/064","source_hash":"fb4777f26494f716ed6568697ee6d8cc5caf427022357d99cbc2e62281103506","source_url":"/docs/release/17.0/#RELEASE-17-UTILITY","statement_hash":"92d39333322480eb6c7266bf2a0426abeab386bd0a7140a07b2bbd2962fddbed","text":"允许在分区表上使用排他约束（Paul A. Jungwirth）§ 只要排他约束以相等比较分区键列，其他列就可以使用排他约束特有的比较方式。","title":"允许在分区表上使用排他约束","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["4f622503d"],"commit_groups":[["4f622503d"]],"commits":["4f622503d"],"cves":[],"db_id":"6092816ce66efe9e474514c27d1edf89","html":"\u003cp\u003e为将列设置为默认统计目标添加更清晰的 \u003ca href=\"/docs/17/sql-altertable.html\" title=\"ALTER TABLE\"\u003e\u003ccode\u003eALTER TABLE\u003c/code\u003e\u003c/a\u003e 方法（Peter Eisentraut）\u003ca href=\"https://postgr.es/c/4f622503d\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e新语法是 \u003ccode\u003eALTER TABLE ... SET STATISTICS DEFAULT\u003c/code\u003e；仍然支持使用 \u003ccode\u003eSET STATISTICS -1\u003c/code\u003e。\u003c/p\u003e","id":"17.0-787ff7a0336bc432","identity_text":"Add clearer ALTER TABLE method to set a column to the default statistics target (Peter Eisentraut) The new syntax is ALTER TABLE ... SET STATISTICS DEFAULT; using SET STATISTICS -1 is still supported.","part":"changes","patch_ids":["4d496fe2fd867ecb3ba5df367b723dd0"],"related_changes":[{"db_id":"55cac36d03b238bca53d532c65e1d15f","evidence":{"patch_ids":["4d496fe2fd867ecb3ba5df367b723dd0"],"same_day":true},"kind":"related","label":"17.0","source_url":"/docs/release/17.0/#RELEASE-17-MIGRATION","title":"将 pg_attribute.attstattarget 和 pg_statistic_ext.stxstattarget 表示默认统计目标的方式更改为 NULL","url":"/docs/compare/?release=17.0#17.0-8e45fc51019a9684","version":"17.0"}],"relations":[{"evidence":{"patch_ids":["4d496fe2fd867ecb3ba5df367b723dd0"],"same_day":true},"rule":2,"target":"55cac36d03b238bca53d532c65e1d15f","type":"related"}],"section":"工具命令","section_path":["工具命令"],"source_commits":["4f622503d"],"source_entry_id":"17.0/changes/065","source_hash":"26e5380d56453682cf806c80cd75bd54d638455642421958df6009f56e40281a","source_url":"/docs/release/17.0/#RELEASE-17-UTILITY","statement_hash":"acfec4a190118ae3ba311a502fe0bacf4bfec8bc1bab7e70582acd98ecd0426d","text":"为将列设置为默认统计目标添加更清晰的 ALTER TABLE 方法（Peter Eisentraut）§ 新语法是 ALTER TABLE ... SET STATISTICS DEFAULT；仍然支持使用 SET STATISTICS -1。","title":"为将列设置为默认统计目标添加更清晰的 ALTER TABLE 方法","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["5d06e99a3"],"commit_groups":[["5d06e99a3"]],"commits":["5d06e99a3"],"cves":[],"db_id":"7526fd7c1aab47310de7f8871d5df6aa","html":"\u003cp\u003e允许 \u003ccode\u003eALTER TABLE\u003c/code\u003e 更改列的生成表达式（Amul Sul）\u003ca href=\"https://postgr.es/c/5d06e99a3\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e语法为 \u003ccode\u003eALTER TABLE ... ALTER COLUMN ... SET EXPRESSION\u003c/code\u003e。\u003c/p\u003e","id":"17.0-cf3bb6016951814b","identity_text":"Allow ALTER TABLE to change a column's generation expression (Amul Sul) The syntax is ALTER TABLE ... ALTER COLUMN ... SET EXPRESSION.","part":"changes","patch_ids":["c3b9ff98023ddcbc946dbb3937a67397"],"related_changes":[],"relations":[],"section":"工具命令","section_path":["工具命令"],"source_commits":["5d06e99a3"],"source_entry_id":"17.0/changes/066","source_hash":"d68eb3005be15dfca37b86149a1eab65687f34d8deb3912d886afe377b47865d","source_url":"/docs/release/17.0/#RELEASE-17-UTILITY","statement_hash":"d03bfa91d58f2c27c3d434cf4174ee7f149d63c3e3516c09f5bc77617f8b45a2","text":"允许 ALTER TABLE 更改列的生成表达式（Amul Sul）§ 语法为 ALTER TABLE ... ALTER COLUMN ... SET EXPRESSION。","title":"允许 ALTER TABLE 更改列的生成表达式","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["374c7a229","e2395cdbe"],"commit_groups":[["374c7a229"],["e2395cdbe"]],"commits":["374c7a229","e2395cdbe"],"cves":[],"db_id":"62582f5907336949f9efd19673964ecc","html":"\u003cp\u003e允许在分区表上指定\u003ca href=\"/docs/17/tableam.html\" title=\"第 61 章 表访问方法接口定义\"\u003e表访问方法\u003c/a\u003e（Justin Pryzby, Soumyadeep Chakraborty, Michael Paquier）\u003ca href=\"https://postgr.es/c/374c7a229\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/e2395cdbe\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-049cb251128661c0","identity_text":"Allow specification of table access methods on partitioned tables (Justin Pryzby, Soumyadeep Chakraborty, Michael Paquier)","part":"changes","patch_ids":["d8c678c4367013caa41719514512deaa","e5b02f4aca72c82315ce2a39bff0c870"],"related_changes":[],"relations":[],"section":"工具命令","section_path":["工具命令"],"source_commits":["374c7a229","e2395cdbe"],"source_entry_id":"17.0/changes/067","source_hash":"58ed2b89b695cb6bf19b0e65b5b8685c2c18e39550cbd5917765d539c98e57f3","source_url":"/docs/release/17.0/#RELEASE-17-UTILITY","statement_hash":"a705a4cebfc30dc70c9ce00a90e9adaf7fa9a90303224410fe646bf4e61547a8","text":"允许在分区表上指定表访问方法（Justin Pryzby, Soumyadeep Chakraborty, Michael Paquier）§ §","title":"允许在分区表上指定表访问方法","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["d61a6cad6"],"commit_groups":[["d61a6cad6"]],"commits":["d61a6cad6"],"cves":[],"db_id":"02aaff9e81f82f1da8e8990a0a588b4f","html":"\u003cp\u003e为 \u003ccode\u003eALTER TABLE .. SET ACCESS METHOD\u003c/code\u003e 添加 \u003ccode\u003eDEFAULT\u003c/code\u003e 设置（Michael Paquier）\u003ca href=\"https://postgr.es/c/d61a6cad6\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-494d942b4e2523b3","identity_text":"Add DEFAULT setting for ALTER TABLE .. SET ACCESS METHOD (Michael Paquier)","part":"changes","patch_ids":["8bb0d47105275c28fc445857675584fa"],"related_changes":[],"relations":[],"section":"工具命令","section_path":["工具命令"],"source_commits":["d61a6cad6"],"source_entry_id":"17.0/changes/068","source_hash":"416f5f66d5ba4650150fc3007b0218d18c91ff7ae7cd6fe5dd613bbc9ad1d23f","source_url":"/docs/release/17.0/#RELEASE-17-UTILITY","statement_hash":"cab1533c7828d51817a48001dc366370824716f564de2a8490608f32577dc178","text":"为 ALTER TABLE .. SET ACCESS METHOD 添加 DEFAULT 设置（Michael Paquier）§","title":"为 ALTER TABLE .. SET ACCESS METHOD 添加 DEFAULT 设置","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["e83d1b0c4"],"commit_groups":[["e83d1b0c4"]],"commits":["e83d1b0c4"],"cves":[],"db_id":"6a0b049ca5010efe61d38bf6dd3266f5","html":"\u003cp\u003e添加对在连接时触发的\u003ca href=\"/docs/17/sql-createeventtrigger.html\" title=\"CREATE EVENT TRIGGER\"\u003e事件触发器\u003c/a\u003e的支持（Konstantin Knizhnik, Mikhail Gribkov）\u003ca href=\"https://postgr.es/c/e83d1b0c4\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-7d3688ffdf807e4e","identity_text":"Add support for event triggers that fire at connection time (Konstantin Knizhnik, Mikhail Gribkov)","part":"changes","patch_ids":["81d2b85442f53f5aae778ed487591a0e"],"related_changes":[],"relations":[],"section":"工具命令","section_path":["工具命令"],"source_commits":["e83d1b0c4"],"source_entry_id":"17.0/changes/069","source_hash":"28030046e1a700e7b3da9438cdfa90ddef97bafb92193632fd6df01c3077c616","source_url":"/docs/release/17.0/#RELEASE-17-UTILITY","statement_hash":"f2526b5708edc82c47132a1620cc8b0e64a3699d8c1efeba55fe964960cce461","text":"添加对在连接时触发的事件触发器的支持（Konstantin Knizhnik, Mikhail Gribkov）§","title":"添加对在连接时触发的事件触发器的支持","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["f21848de2"],"commit_groups":[["f21848de2"]],"commits":["f21848de2"],"cves":[],"db_id":"fcd308f571631c763de01309c3cb4c09","html":"\u003cp\u003e为 \u003ca href=\"/docs/17/sql-reindex.html\" title=\"REINDEX\"\u003e\u003ccode\u003eREINDEX\u003c/code\u003e\u003c/a\u003e 添加事件触发器支持（Garrett Thornburg, Jian He）\u003ca href=\"https://postgr.es/c/f21848de2\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-43f3afd9c441cc91","identity_text":"Add event trigger support for REINDEX (Garrett Thornburg, Jian He)","part":"changes","patch_ids":["8302e0e533a7421fbae210668443c136"],"related_changes":[],"relations":[],"section":"工具命令","section_path":["工具命令"],"source_commits":["f21848de2"],"source_entry_id":"17.0/changes/070","source_hash":"17455ef14238956f534688dc513015d05d1a9a0e221d27b67d021b2a4eafcff7","source_url":"/docs/release/17.0/#RELEASE-17-UTILITY","statement_hash":"45418b1481cebd92285301651d9ee095012d2bfd7749baa103981dccad07ee0e","text":"为 REINDEX 添加事件触发器支持（Garrett Thornburg, Jian He）§","title":"为 REINDEX 添加事件触发器支持","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["cdaedfc96"],"commit_groups":[["cdaedfc96"]],"commits":["cdaedfc96"],"cves":[],"db_id":"c98666cbc1ccf226e8383a8e54298655","html":"\u003cp\u003e如果未指定表名，则允许 \u003ca href=\"/docs/17/sql-cluster.html\" title=\"CLUSTER\"\u003e\u003ccode\u003eCLUSTER\u003c/code\u003e\u003c/a\u003e 选项使用带括号的语法（Nathan Bossart）\u003ca href=\"https://postgr.es/c/cdaedfc96\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-161eda21ac95b359","identity_text":"Allow parenthesized syntax for CLUSTER options if a table name is not specified (Nathan Bossart)","part":"changes","patch_ids":["d93decf7641cabc5deb7a2fc6e85a2b7"],"related_changes":[],"relations":[],"section":"工具命令","section_path":["工具命令"],"source_commits":["cdaedfc96"],"source_entry_id":"17.0/changes/071","source_hash":"99d61ca022448a0a5a5c450ba9edd277dd8f7e8b0c8754c586effa312b63a778","source_url":"/docs/release/17.0/#RELEASE-17-UTILITY","statement_hash":"00eaff8d7fa0509a53d7cd5a746bd90ea2f5b6e4f4e459e8bdf12b8b7f408c6d","text":"如果未指定表名，则允许 CLUSTER 选项使用带括号的语法（Nathan Bossart）§","title":"如果未指定表名，则允许 CLUSTER 选项使用带括号的语法","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["5de890e36"],"commit_groups":[["5de890e36"]],"commits":["5de890e36"],"cves":[],"db_id":"71bed92339c3f3de0a86b6d3a9e0402e","html":"\u003cp\u003e允许 \u003ccode\u003eEXPLAIN\u003c/code\u003e 报告优化器内存使用情况（Ashutosh Bapat）\u003ca href=\"https://postgr.es/c/5de890e36\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e该选项名为 \u003ccode\u003eMEMORY\u003c/code\u003e。\u003c/p\u003e","id":"17.0-4834f8b764dc204a","identity_text":"Allow EXPLAIN to report optimizer memory usage (Ashutosh Bapat) The option is called MEMORY.","part":"changes","patch_ids":["15c76db82c589c26fa4aff3ded39fd2a"],"related_changes":[],"relations":[],"section":"工具命令 / EXPLAIN","section_path":["工具命令","EXPLAIN"],"source_commits":["5de890e36"],"source_entry_id":"17.0/changes/072","source_hash":"df62ec5e427baba9f1a68c67a0fc4b0a1771853730714e2f0fec766a680eeb5e","source_url":"/docs/release/17.0/#RELEASE-17-EXPLAIN","statement_hash":"c00457662f0e50af98fecdda7c5860246233624cfa685f472f01f8847be3523d","text":"允许 EXPLAIN 报告优化器内存使用情况（Ashutosh Bapat）§ 该选项名为 MEMORY。","title":"允许 EXPLAIN 报告优化器内存使用情况","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["06286709e"],"commit_groups":[["06286709e"]],"commits":["06286709e"],"cves":[],"db_id":"97daae7ca392b85d0b1d17e931861cd8","html":"\u003cp\u003e添加 \u003ccode\u003eEXPLAIN\u003c/code\u003e 选项 \u003ccode\u003eSERIALIZE\u003c/code\u003e，用于报告为网络传输转换数据的代价（Stepan Rutz, Matthias van de Meent）\u003ca href=\"https://postgr.es/c/06286709e\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-59564320f7abfbbf","identity_text":"Add EXPLAIN option SERIALIZE to report the cost of converting data for network transmission (Stepan Rutz, Matthias van de Meent)","part":"changes","patch_ids":["bdfaec7d62abe43f514139e272c051cc"],"related_changes":[],"relations":[],"section":"工具命令 / EXPLAIN","section_path":["工具命令","EXPLAIN"],"source_commits":["06286709e"],"source_entry_id":"17.0/changes/073","source_hash":"e8b472e48caac5191de15ffbf6600fd4fbf694fa6082f21315b77399225d2af2","source_url":"/docs/release/17.0/#RELEASE-17-EXPLAIN","statement_hash":"1d9bd86e2a9f38de5d25e356e2382a057efe88eff00bf1142389566ea7ae5a51","text":"添加 EXPLAIN 选项 SERIALIZE，用于报告为网络传输转换数据的代价（Stepan Rutz, Matthias van de Meent）§","title":"添加 EXPLAIN 选项 SERIALIZE，用于报告为网络传输转换数据的代价","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["295c36c0c"],"commit_groups":[["295c36c0c"]],"commits":["295c36c0c"],"cves":[],"db_id":"3a8f2092e95f906fe2ba774157ee86a4","html":"\u003cp\u003e为 \u003ccode\u003eEXPLAIN\u003c/code\u003e 的 \u003ccode\u003eBUFFERS\u003c/code\u003e 输出添加本地 I/O 块读/写耗时统计信息（Nazir Bilal Yavuz）\u003ca href=\"https://postgr.es/c/295c36c0c\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-70a7093e20ba6cd2","identity_text":"Add local I/O block read/write timing statistics to EXPLAIN's BUFFERS output (Nazir Bilal Yavuz)","part":"changes","patch_ids":["5bbfcb7876ccc999e0bc578d10ccf3d1"],"related_changes":[{"db_id":"a487787ae801d826d7c42eb4f15dd2e9","evidence":{"ambiguous_patch_ids":["5bbfcb7876ccc999e0bc578d10ccf3d1"],"patch_ids":["5bbfcb7876ccc999e0bc578d10ccf3d1"],"same_day":true},"kind":"related","label":"17.0","source_url":"/docs/release/17.0/#RELEASE-17-PGSTATSTATEMENTS","title":"为 pg_stat_statements 添加本地 I/O 块读/写耗时统计列","url":"/docs/compare/?release=17.0#17.0-843394b54569c073","version":"17.0"}],"relations":[{"evidence":{"ambiguous_patch_ids":["5bbfcb7876ccc999e0bc578d10ccf3d1"],"patch_ids":["5bbfcb7876ccc999e0bc578d10ccf3d1"],"same_day":true},"rule":2,"target":"a487787ae801d826d7c42eb4f15dd2e9","type":"related"}],"section":"工具命令 / EXPLAIN","section_path":["工具命令","EXPLAIN"],"source_commits":["295c36c0c"],"source_entry_id":"17.0/changes/074","source_hash":"de34753602be6a6963efeae2cc431f7e76b6c3da2246b4e1baf66443089fe100","source_url":"/docs/release/17.0/#RELEASE-17-EXPLAIN","statement_hash":"14a0f420e6fdce8e907b562e8b737826172d9e6da9085f5efe07db0de1a13e0a","text":"为 EXPLAIN 的 BUFFERS 输出添加本地 I/O 块读/写耗时统计信息（Nazir Bilal Yavuz）§","title":"为 EXPLAIN 的 BUFFERS 输出添加本地 I/O 块读/写耗时统计信息","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["fd0398fcb"],"commit_groups":[["fd0398fcb"]],"commits":["fd0398fcb"],"cves":[],"db_id":"c47f831b9c89bc80c9d9bed926c01e11","html":"\u003cp\u003e改进 \u003ccode\u003eEXPLAIN\u003c/code\u003e 对 SubPlan 节点和输出参数的显示（Tom Lane, Dean Rasheed）\u003ca href=\"https://postgr.es/c/fd0398fcb\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-73bb5a163fd3f295","identity_text":"Improve EXPLAIN's display of SubPlan nodes and output parameters (Tom Lane, Dean Rasheed)","part":"changes","patch_ids":["bd71d58ddd079130d8bcb6140dca138a"],"related_changes":[],"relations":[],"section":"工具命令 / EXPLAIN","section_path":["工具命令","EXPLAIN"],"source_commits":["fd0398fcb"],"source_entry_id":"17.0/changes/075","source_hash":"8de10e075d3a3a3f910aa6e30549cddd065a9648a70fd829574a4da7ec5b3a4e","source_url":"/docs/release/17.0/#RELEASE-17-EXPLAIN","statement_hash":"ef2b0f1b56499d7ea432798a077b5f335c1c1a385cde35670b8dcda2eef45d21","text":"改进 EXPLAIN 对 SubPlan 节点和输出参数的显示（Tom Lane, Dean Rasheed）§","title":"改进 EXPLAIN 对 SubPlan 节点和输出参数的显示","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["5a3423ad8"],"commit_groups":[["5a3423ad8"]],"commits":["5a3423ad8"],"cves":[],"db_id":"14f807d67bbb33e16136e47a0d977573","html":"\u003cp\u003e为 \u003ccode\u003eEXPLAIN\u003c/code\u003e 添加 \u003cacronym\u003eJIT\u003c/acronym\u003e \u003ccode\u003edeform_counter\u003c/code\u003e 细节（Dmitry Dolgov）\u003ca href=\"https://postgr.es/c/5a3423ad8\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-b17cc37285e213a8","identity_text":"Add JIT deform_counter details to EXPLAIN (Dmitry Dolgov)","part":"changes","patch_ids":["69b5f4ac2075731de6ade1ebfae6e6c3"],"related_changes":[{"db_id":"cfc33f9d4d45dd958c4e7f050c7845a6","evidence":{"ambiguous_patch_ids":["69b5f4ac2075731de6ade1ebfae6e6c3"],"patch_ids":["69b5f4ac2075731de6ade1ebfae6e6c3"],"same_day":true},"kind":"related","label":"17.0","source_url":"/docs/release/17.0/#RELEASE-17-PGSTATSTATEMENTS","title":"为 pg_stat_statements 添加 JIT deform_counter 细节","url":"/docs/compare/?release=17.0#17.0-0a15ab0156dc13fd","version":"17.0"}],"relations":[{"evidence":{"ambiguous_patch_ids":["69b5f4ac2075731de6ade1ebfae6e6c3"],"patch_ids":["69b5f4ac2075731de6ade1ebfae6e6c3"],"same_day":true},"rule":2,"target":"cfc33f9d4d45dd958c4e7f050c7845a6","type":"related"}],"section":"工具命令 / EXPLAIN","section_path":["工具命令","EXPLAIN"],"source_commits":["5a3423ad8"],"source_entry_id":"17.0/changes/076","source_hash":"eaf00283591cbcad72f2ed135a5c0cf1140c22b3584f62f60be1d4f8f585482a","source_url":"/docs/release/17.0/#RELEASE-17-EXPLAIN","statement_hash":"3bc4030554843738c8a6339ba9875ea48730c6393f452b7c2474543a48de9ec5","text":"为 EXPLAIN 添加 JIT deform_counter 细节（Dmitry Dolgov）§","title":"为 EXPLAIN 添加 JIT deform_counter 细节","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["519fc1bd9"],"commit_groups":[["519fc1bd9"]],"commits":["519fc1bd9"],"cves":[],"db_id":"21e19c5c09084391af043fdfb894e330","html":"\u003cp\u003e允许 \u003ccode\u003einterval\u003c/code\u003e 数据类型支持 \u003ccode\u003e+/-infinity\u003c/code\u003e 值（Joseph Koshakow, Jian He, Ashutosh Bapat）\u003ca href=\"https://postgr.es/c/519fc1bd9\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-5dddac4281e029d5","identity_text":"Allow the interval data type to support +/-infinity values (Joseph Koshakow, Jian He, Ashutosh Bapat)","part":"changes","patch_ids":["b91938e8420c533dc224e7b125b6abb3"],"related_changes":[],"relations":[],"section":"数据类型","section_path":["数据类型"],"source_commits":["519fc1bd9"],"source_entry_id":"17.0/changes/077","source_hash":"57d8671681af0916c481def50a42c7c50a641c1d43a0cdbd5b989e6c0690210a","source_url":"/docs/release/17.0/#RELEASE-17-DATATYPES","statement_hash":"d15ddf43fef7d9894b24b27706b8cb8b690ac81aed3b281e59237148f0f47f68","text":"允许 interval 数据类型支持 +/-infinity 值（Joseph Koshakow, Jian He, Ashutosh Bapat）§","title":"允许 interval 数据类型支持 +/-infinity 值","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["af1d39584"],"commit_groups":[["af1d39584"]],"commits":["af1d39584"],"cves":[],"db_id":"bb4b92fac7d7bf27bbf2a3c676960bb1","html":"\u003cp\u003e如果该类型是在同一事务中创建的，则允许使用通过 \u003ca href=\"/docs/17/sql-altertype.html\" title=\"ALTER TYPE\"\u003e\u003ccode\u003eALTER TYPE\u003c/code\u003e\u003c/a\u003e 新增的 \u003ca href=\"/docs/17/datatype-enum.html\" title=\"8.7. 枚举类型\"\u003e\u003ccode\u003eENUM\u003c/code\u003e\u003c/a\u003e 值（Tom Lane）\u003ca href=\"https://postgr.es/c/af1d39584\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这在以前是不允许的。\u003c/p\u003e","id":"17.0-5764d88da88cc2f7","identity_text":"Allow the use of an ENUM added via ALTER TYPE if the type was created in the same transaction (Tom Lane) This was previously disallowed.","part":"changes","patch_ids":["4a8aa96d2b3f72c17cca83bb033799f9"],"related_changes":[],"relations":[],"section":"数据类型","section_path":["数据类型"],"source_commits":["af1d39584"],"source_entry_id":"17.0/changes/078","source_hash":"1b54e6f54d9debea581b57bd116ccdd1ca2f74bab99289355269d7fc57624785","source_url":"/docs/release/17.0/#RELEASE-17-DATATYPES","statement_hash":"df9e6a22a08482e477e5d5f873e5f54b9cd9b8aa522560fdc6cac13d9137c604","text":"如果该类型是在同一事务中创建的，则允许使用通过 ALTER TYPE 新增的 ENUM 值（Tom Lane）§ 这在以前是不允许的。","title":"如果该类型是在同一事务中创建的，则允许使用通过 ALTER TYPE 新增的 ENUM 值","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["5f2e179bd"],"commit_groups":[["5f2e179bd"]],"commits":["5f2e179bd"],"cves":[],"db_id":"d6ae6c853adaf39f35ba6ae35112094c","html":"\u003cp\u003e允许 \u003ccode\u003eMERGE\u003c/code\u003e 修改可更新视图（Dean Rasheed）\u003ca href=\"https://postgr.es/c/5f2e179bd\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-f678dfc6392caa4d","identity_text":"Allow MERGE to modify updatable views (Dean Rasheed)","part":"changes","patch_ids":["ae64a98f80ec7bf32d31aabe70bb3a8c"],"related_changes":[],"relations":[],"section":"MERGE","section_path":["MERGE"],"source_commits":["5f2e179bd"],"source_entry_id":"17.0/changes/079","source_hash":"2f73e95958319080e5040b3e1271ce2c829be7874fe2ce0c80aff15b4009699d","source_url":"/docs/release/17.0/#RELEASE-17-MERGE","statement_hash":"76e8a3a1ee7a4639111f47ff871c659e6aa5893a7a84fc3a17173c1eacdaea38","text":"允许 MERGE 修改可更新视图（Dean Rasheed）§","title":"允许 MERGE 修改可更新视图","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["0294df2f1"],"commit_groups":[["0294df2f1"]],"commits":["0294df2f1"],"cves":[],"db_id":"68ca5745ae12c64f23b5edcc507fbd7d","html":"\u003cp\u003e为 \u003ccode\u003eMERGE\u003c/code\u003e 添加 \u003ccode\u003eWHEN NOT MATCHED BY SOURCE\u003c/code\u003e（Dean Rasheed）\u003ca href=\"https://postgr.es/c/0294df2f1\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e以前已经支持在目标行上使用 \u003ccode\u003eWHEN NOT MATCHED\u003c/code\u003e。\u003c/p\u003e","id":"17.0-562401d3e7ee1c60","identity_text":"Add WHEN NOT MATCHED BY SOURCE to MERGE (Dean Rasheed) WHEN NOT MATCHED on target rows was already supported.","part":"changes","patch_ids":["de2d02cea48c4be3dd7df067cd971800"],"related_changes":[],"relations":[],"section":"MERGE","section_path":["MERGE"],"source_commits":["0294df2f1"],"source_entry_id":"17.0/changes/080","source_hash":"8ef1e26d38e863b544f0e125e1251ceaa64e9e5c824c4915f85724da77dcead4","source_url":"/docs/release/17.0/#RELEASE-17-MERGE","statement_hash":"cada5f1d9f0edc113c09a36c592fba8e5ef5d012b10b6271f1c6af7f11f327ed","text":"为 MERGE 添加 WHEN NOT MATCHED BY SOURCE（Dean Rasheed）§ 以前已经支持在目标行上使用 WHEN NOT MATCHED。","title":"为 MERGE 添加 WHEN NOT MATCHED BY SOURCE","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["c649fa24a"],"commit_groups":[["c649fa24a"]],"commits":["c649fa24a"],"cves":[],"db_id":"126f05e11609c4529c0e084a8fa399eb","html":"\u003cp\u003e允许 \u003ccode\u003eMERGE\u003c/code\u003e 使用 \u003ccode\u003eRETURNING\u003c/code\u003e 子句（Dean Rasheed）\u003ca href=\"https://postgr.es/c/c649fa24a\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e新的 \u003ccode\u003eRETURNING\u003c/code\u003e 函数 \u003ccode\u003emerge_action()\u003c/code\u003e 会报告生成该行的 \u003cacronym\u003eDML\u003c/acronym\u003e 操作。\u003c/p\u003e","id":"17.0-970b310040a2c152","identity_text":"Allow MERGE to use the RETURNING clause (Dean Rasheed) The new RETURNING function merge_action() reports on the DML that generated the row.","part":"changes","patch_ids":["9b6645a437b79d8fa2c57824a45c59e3"],"related_changes":[],"relations":[],"section":"MERGE","section_path":["MERGE"],"source_commits":["c649fa24a"],"source_entry_id":"17.0/changes/081","source_hash":"0ed35771443ac01bb89c6249564ad4e3cdfe7a5d39b142e751055c63c83a78a4","source_url":"/docs/release/17.0/#RELEASE-17-MERGE","statement_hash":"613d6ca6525351d206e387de3bbbbd36934a63b88a05a516969d9c7b3f07e9f2","text":"允许 MERGE 使用 RETURNING 子句（Dean Rasheed）§ 新的 RETURNING 函数 merge_action() 会报告生成该行的 DML 操作。","title":"允许 MERGE 使用 RETURNING 子句","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["bb766cde6","de3600452"],"commit_groups":[["bb766cde6"],["de3600452"]],"commits":["bb766cde6","de3600452"],"cves":[],"db_id":"f81a9564db2ca7fd0b33004b18e5f87b","html":"\u003cp\u003e添加函数 \u003ca href=\"/docs/17/functions-json.html#FUNCTIONS-SQLJSON-TABLE\" title=\"9.16.4. JSON_TABLE\"\u003e\u003ccode\u003eJSON_TABLE()\u003c/code\u003e\u003c/a\u003e，用于将 \u003ccode\u003eJSON\u003c/code\u003e 数据转换为表表示形式（Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Andrew Dunstan, Amit Langote, Jian He）\u003ca href=\"https://postgr.es/c/de3600452\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/bb766cde6\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e该函数可在 \u003ccode\u003eSELECT\u003c/code\u003e 查询的 \u003ccode\u003eFROM\u003c/code\u003e 子句中用作元组源。\u003c/p\u003e","id":"17.0-50934f8be2eb3c55","identity_text":"Add function JSON_TABLE() to convert JSON data to a table representation (Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Andrew Dunstan, Amit Langote, Jian He) This function can be used in the FROM clause of SELECT queries as a tuple source.","part":"changes","patch_ids":["827c683d8288891738cf31a5945db549","a88ddc4b39ea92b620999c2ad59eb410"],"related_changes":[],"relations":[],"section":"函数","section_path":["函数"],"source_commits":["bb766cde6","de3600452"],"source_entry_id":"17.0/changes/082","source_hash":"5298e1149453b597f22af3d1a2139f1682be6ebb692bd53bb15f0ea26b9191b9","source_url":"/docs/release/17.0/#RELEASE-17-FUNCTIONS","statement_hash":"c9ae5e14a1f857cc5ffad59dc3b48e6c0fa04a887bae8a96f1c48d9a6724b755","text":"添加函数 JSON_TABLE()，用于将 JSON 数据转换为表表示形式（Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Andrew Dunstan, Amit Langote, Jian He）§ § 该函数可在 SELECT 查询的 FROM 子句中用作元组源。","title":"添加函数 JSON_TABLE()，用于将 JSON 数据转换为表表示形式","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["03734a7fe"],"commit_groups":[["03734a7fe"]],"commits":["03734a7fe"],"cves":[],"db_id":"cd6bbeaf341c7a0bc5aa8e262b47fceb","html":"\u003cp\u003e添加 \u003cacronym\u003eSQL/JSON\u003c/acronym\u003e 构造函数 \u003ca href=\"/docs/17/functions-json.html#FUNCTIONS-JSON-CREATION-TABLE\" title=\"表 9.47. JSON 创建函数\"\u003e\u003ccode\u003eJSON()\u003c/code\u003e\u003c/a\u003e、\u003ccode\u003eJSON_SCALAR()\u003c/code\u003e 和 \u003ccode\u003eJSON_SERIALIZE()\u003c/code\u003e（Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Andrew Dunstan, Amit Langote）\u003ca href=\"https://postgr.es/c/03734a7fe\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-a2bfdd62593cd133","identity_text":"Add SQL/JSON constructor functions JSON(), JSON_SCALAR(), and JSON_SERIALIZE() (Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Andrew Dunstan, Amit Langote)","part":"changes","patch_ids":["9e77c2d2411f443655e00ae4c5699084"],"related_changes":[],"relations":[],"section":"函数","section_path":["函数"],"source_commits":["03734a7fe"],"source_entry_id":"17.0/changes/083","source_hash":"f26755de813f4c7388a75ef86c3be47ee7d376876625d89373573ded1c7ff9b4","source_url":"/docs/release/17.0/#RELEASE-17-FUNCTIONS","statement_hash":"aef51a5c4c10b92624cda2ada0393face18bdf494faeeb3acff0bd965617147f","text":"添加 SQL/JSON 构造函数 JSON()、JSON_SCALAR() 和 JSON_SERIALIZE()（Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Andrew Dunstan, Amit Langote）§","title":"添加 SQL/JSON 构造函数 JSON()、JSON_SCALAR() 和 JSON_SERIALIZE()","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["1edb3b491","6185c9737","aaaf9449e","c0fc07518","ef744ebb7"],"commit_groups":[["1edb3b491"],["6185c9737"],["aaaf9449e"],["c0fc07518"],["ef744ebb7"]],"commits":["1edb3b491","6185c9737","aaaf9449e","c0fc07518","ef744ebb7"],"cves":[],"db_id":"703cebe523925aa6ca4d8351ad6135ce","html":"\u003cp\u003e添加 \u003cacronym\u003eSQL/JSON\u003c/acronym\u003e 查询函数 \u003ca href=\"/docs/17/functions-json.html#FUNCTIONS-SQLJSON-QUERYING\" title=\"表 9.52. SQL/JSON 查询函数\"\u003e\u003ccode\u003eJSON_EXISTS()\u003c/code\u003e\u003c/a\u003e、\u003ccode\u003eJSON_QUERY()\u003c/code\u003e 和 \u003ccode\u003eJSON_VALUE()\u003c/code\u003e（Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Andrew Dunstan, Amit Langote, Peter Eisentraut, Jian He）\u003ca href=\"https://postgr.es/c/aaaf9449e\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/1edb3b491\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/6185c9737\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/c0fc07518\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/ef744ebb7\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-63c921731ac73ee3","identity_text":"Add SQL/JSON query functions JSON_EXISTS(), JSON_QUERY(), and JSON_VALUE() (Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Andrew Dunstan, Amit Langote, Peter Eisentraut, Jian He)","part":"changes","patch_ids":["742f62635fd9242ed92e4993e85e3573","8beac13a47ca2ea95e530d5caddcda1f","ced2d75f90b885737e9967460711c76a","e26ce5b9ac68c76ff6a5e663948f4a05","e4419c99647e51878f7770e80deb37be"],"related_changes":[],"relations":[],"section":"函数","section_path":["函数"],"source_commits":["1edb3b491","6185c9737","aaaf9449e","c0fc07518","ef744ebb7"],"source_entry_id":"17.0/changes/084","source_hash":"194e21e26f79c8b2e08789e69a959c7a5a069fff7917ca57b19069d1ae273b3b","source_url":"/docs/release/17.0/#RELEASE-17-FUNCTIONS","statement_hash":"6c40c1de4c211c42bec095edfbc37479f4c11aac565dff6a9a69df03d3720734","text":"添加 SQL/JSON 查询函数 JSON_EXISTS()、JSON_QUERY() 和 JSON_VALUE()（Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Andrew Dunstan, Amit Langote, Peter Eisentraut, Jian He）§ § § § §","title":"添加 SQL/JSON 查询函数 JSON_EXISTS()、JSON_QUERY() 和 JSON_VALUE()","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["66ea94e8e"],"commit_groups":[["66ea94e8e"]],"commits":["66ea94e8e"],"cves":[],"db_id":"cf230e53eba840d6dc4a5db3dc7855b6","html":"\u003cp\u003e添加 \u003ca href=\"/docs/17/functions-json.html#FUNCTIONS-SQLJSON-PATH-OPERATORS\" title=\"9.16.2.3. SQL/JSON 路径操作符和方法\"\u003ejsonpath\u003c/a\u003e 方法，用于将 \u003ccode\u003eJSON\u003c/code\u003e 值转换为其他数据类型（Jeevan Chalke）\u003ca href=\"https://postgr.es/c/66ea94e8e\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这些 jsonpath 方法包括 \u003ccode\u003e.bigint()\u003c/code\u003e、\u003ccode\u003e.boolean()\u003c/code\u003e、\u003ccode\u003e.date()\u003c/code\u003e、\u003ccode\u003e.decimal([precision [, scale]])\u003c/code\u003e、\u003ccode\u003e.integer()\u003c/code\u003e、\u003ccode\u003e.number()\u003c/code\u003e、\u003ccode\u003e.string()\u003c/code\u003e、\u003ccode\u003e.time()\u003c/code\u003e、\u003ccode\u003e.time_tz()\u003c/code\u003e、\u003ccode\u003e.timestamp()\u003c/code\u003e、以及 \u003ccode\u003e.timestamp_tz()\u003c/code\u003e。\u003c/p\u003e","id":"17.0-671eb1d0eabe7589","identity_text":"Add jsonpath methods to convert JSON values to other JSON data types (Jeevan Chalke) The jsonpath methods are .bigint(), .boolean(), .date(), .decimal([precision [, scale]]), .integer(), .number(), .string(), .time(), .time_tz(), .timestamp(), and .timestamp_tz().","part":"changes","patch_ids":["508b378763d6201a25a6d3f302d6aef0"],"related_changes":[],"relations":[],"section":"函数","section_path":["函数"],"source_commits":["66ea94e8e"],"source_entry_id":"17.0/changes/085","source_hash":"6299725100304538ac11191f4687474c5aa2badab23efb9be0d0541d1518d170","source_url":"/docs/release/17.0/#RELEASE-17-FUNCTIONS","statement_hash":"170c8a60fe7819d38cf5ec8af4189a18358a1ee9f890bedf1c3ebcaeb13203da","text":"添加 jsonpath 方法，用于将 JSON 值转换为其他数据类型（Jeevan Chalke）§ 这些 jsonpath 方法包括 .bigint()、.boolean()、.date()、.decimal([precision [, scale]])、.integer()、.number()、.string()、.time()、.time_tz()、.timestamp()、以及 .timestamp_tz()。","title":"添加 jsonpath 方法，用于将 JSON 值转换为其他数据类型","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["8ba6fdf90"],"commit_groups":[["8ba6fdf90"]],"commits":["8ba6fdf90"],"cves":[],"db_id":"6560f09c8fbe53b0bd652ce7c2b89173","html":"\u003cp\u003e为 \u003ca href=\"/docs/17/functions-formatting.html#FUNCTIONS-FORMATTING-TABLE\" title=\"表 9.26. 格式化函数\"\u003e\u003ccode\u003eto_timestamp()\u003c/code\u003e\u003c/a\u003e 添加时区格式说明符（Tom Lane）\u003ca href=\"https://postgr.es/c/8ba6fdf90\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eTZ\u003c/code\u003e 接受时区缩写或数字偏移，而 \u003ccode\u003eOF\u003c/code\u003e 只接受数字偏移。\u003c/p\u003e","id":"17.0-a989828fde2e2ef1","identity_text":"Add to_timestamp() time zone format specifiers (Tom Lane) TZ accepts time zone abbreviations or numeric offsets, while OF accepts only numeric offsets.","part":"changes","patch_ids":["91055d3ffb63717414d185dd38bde979"],"related_changes":[],"relations":[],"section":"函数","section_path":["函数"],"source_commits":["8ba6fdf90"],"source_entry_id":"17.0/changes/086","source_hash":"e743a5205bfa8c7f118647b56e6089f98a0a9e76edc400726ce600298e2cc55e","source_url":"/docs/release/17.0/#RELEASE-17-FUNCTIONS","statement_hash":"1b688041d44b8fad2d2ae8b2d513b6dbb609cc76f6c5238a13b4e3320799b229","text":"为 to_timestamp() 添加时区格式说明符（Tom Lane）§ TZ 接受时区缩写或数字偏移，而 OF 只接受数字偏移。","title":"为 to_timestamp() 添加时区格式说明符","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["97957fdba"],"commit_groups":[["97957fdba"]],"commits":["97957fdba"],"cves":[],"db_id":"dd05696b9334a5a4f66ae3607a1502db","html":"\u003cp\u003e允许通过 \u003ccode\u003eAT LOCAL\u003c/code\u003e 指定会话\u003ca href=\"/docs/17/runtime-config-client.html#GUC-TIMEZONE\"\u003e时区\u003c/a\u003e（Vik Fearing）\u003ca href=\"https://postgr.es/c/97957fdba\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这在为时间戳值添加或移除时区，而不是显式指定会话时区字面量时很有用。\u003c/p\u003e","id":"17.0-d08795a05f3e6f6b","identity_text":"Allow the session time zone to be specified by AT LOCAL (Vik Fearing) This is useful when converting adding and removing time zones from time stamps values, rather than specifying the literal session time zone.","part":"changes","patch_ids":["56e48bbda9ba4c5f8386bfd60b2f6b1e"],"related_changes":[],"relations":[],"section":"函数","section_path":["函数"],"source_commits":["97957fdba"],"source_entry_id":"17.0/changes/087","source_hash":"381a3df7224cf58bbb21d1adca418e4ef00dff29d87b5bdbb03ad0919c9c029e","source_url":"/docs/release/17.0/#RELEASE-17-FUNCTIONS","statement_hash":"b3b1850bd0c882795cbf14fc12e51334556d3072863022b12a9fff41690e6465","text":"允许通过 AT LOCAL 指定会话时区（Vik Fearing）§ 这在为时间戳值添加或移除时区，而不是显式指定会话时区字面量时很有用。","title":"允许通过 AT LOCAL 指定会话时区","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["794f10f6b"],"commit_groups":[["794f10f6b"]],"commits":["794f10f6b"],"cves":[],"db_id":"1ca69f05ab160e002d694711d3fcfe01","html":"\u003cp\u003e添加函数 \u003ca href=\"/docs/17/functions-uuid.html\" title=\"9.14. UUID 函数\"\u003e\u003ccode\u003euuid_extract_timestamp()\u003c/code\u003e\u003c/a\u003e 和 \u003ccode\u003euuid_extract_version()\u003c/code\u003e，用于返回 \u003cacronym\u003eUUID\u003c/acronym\u003e 信息（Andrey Borodin）\u003ca href=\"https://postgr.es/c/794f10f6b\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-1252be3d097bc82d","identity_text":"Add functions uuid_extract_timestamp() and uuid_extract_version() to return UUID information (Andrey Borodin)","part":"changes","patch_ids":["800ea20d57723701a28e3a149aab3fbc"],"related_changes":[],"relations":[],"section":"函数","section_path":["函数"],"source_commits":["794f10f6b"],"source_entry_id":"17.0/changes/088","source_hash":"18a9b883b77bc3d08cfdee373283b004d00fb66024d59b250ae45b665720c390","source_url":"/docs/release/17.0/#RELEASE-17-FUNCTIONS","statement_hash":"fc3077e1c87f31ed7c24a5e77c2e9587acc9adce7f767fa6cabf6d0a37b843dd","text":"添加函数 uuid_extract_timestamp() 和 uuid_extract_version()，用于返回 UUID 信息（Andrey Borodin）§","title":"添加函数 uuid_extract_timestamp() 和 uuid_extract_version()，用于返回 UUID 信息","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["e6341323a"],"commit_groups":[["e6341323a"]],"commits":["e6341323a"],"cves":[],"db_id":"15f76b84a9cf872bac04242c665d6baf","html":"\u003cp\u003e添加用于在指定范围内生成随机数的函数（Dean Rasheed）\u003ca href=\"https://postgr.es/c/e6341323a\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这些函数是 \u003ca href=\"/docs/17/functions-math.html#FUNCTIONS-MATH-RANDOM-TABLE\" title=\"表 9.6. 随机函数\"\u003e\u003ccode\u003erandom(min, max)\u003c/code\u003e\u003c/a\u003e，其参数可为 \u003ccode\u003einteger\u003c/code\u003e、\u003ccode\u003ebigint\u003c/code\u003e 和 \u003ccode\u003enumeric\u003c/code\u003e 类型的值。\u003c/p\u003e","id":"17.0-4f3b9df121a021ed","identity_text":"Add functions to generate random numbers in a specified range (Dean Rasheed) The functions are random(min, max) and they take values of type integer, bigint, and numeric.","part":"changes","patch_ids":["487fe43ea5826fdd1bd827f2dbfa3d8c"],"related_changes":[],"relations":[],"section":"函数","section_path":["函数"],"source_commits":["e6341323a"],"source_entry_id":"17.0/changes/089","source_hash":"8a7e21c27820b56f351bdf30c437288bcf7182efc4557b3a2c44d744c09ec7c8","source_url":"/docs/release/17.0/#RELEASE-17-FUNCTIONS","statement_hash":"2d790131c07f98882ff147f13c1ed85b4e631a47de66a6bb25cd12e9e13239d9","text":"添加用于在指定范围内生成随机数的函数（Dean Rasheed）§ 这些函数是 random(min, max)，其参数可为 integer、bigint 和 numeric 类型的值。","title":"添加用于在指定范围内生成随机数的函数","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["260a1f18d"],"commit_groups":[["260a1f18d"]],"commits":["260a1f18d"],"cves":[],"db_id":"e7ea8e9b047e9df45b8e052b1fe861b8","html":"\u003cp\u003e添加将整数转换为二进制和八进制字符串的函数（Eric Radman, Nathan Bossart）\u003ca href=\"https://postgr.es/c/260a1f18d\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这些函数是 \u003ca href=\"/docs/17/functions-string.html#FUNCTIONS-STRING-OTHER\" title=\"表 9.10. 其他字符串函数和操作符\"\u003e\u003ccode\u003eto_bin()\u003c/code\u003e\u003c/a\u003e 和 \u003ccode\u003eto_oct()\u003c/code\u003e。\u003c/p\u003e","id":"17.0-70100a8ca562fb61","identity_text":"Add functions to convert integers to binary and octal strings (Eric Radman, Nathan Bossart) The functions are to_bin() and to_oct().","part":"changes","patch_ids":["b85ba41fc9ae02aae058e57694a4e20e"],"related_changes":[],"relations":[],"section":"函数","section_path":["函数"],"source_commits":["260a1f18d"],"source_entry_id":"17.0/changes/090","source_hash":"9b9d0f78bc2165c7d009f505c7b680d3abccc24486339914c69037cc042b40d2","source_url":"/docs/release/17.0/#RELEASE-17-FUNCTIONS","statement_hash":"cb8199f4455dc9385eea98bbbd277b341b818b5fc4509f10e332ebd9c7b0f8f5","text":"添加将整数转换为二进制和八进制字符串的函数（Eric Radman, Nathan Bossart）§ 这些函数是 to_bin() 和 to_oct()。","title":"添加将整数转换为二进制和八进制字符串的函数","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["a02b37fc0"],"commit_groups":[["a02b37fc0"]],"commits":["a02b37fc0"],"cves":[],"db_id":"d461ed69798162833d67b79760bc6525","html":"\u003cp\u003e添加 Unicode 信息函数（Jeff Davis）\u003ca href=\"https://postgr.es/c/a02b37fc0\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e函数 \u003ca href=\"/docs/17/functions-info.html#FUNCTIONS-INFO-VERSION\" title=\"9.27.11. 版本信息函数\"\u003e\u003ccode\u003eunicode_version()\u003c/code\u003e\u003c/a\u003e 返回 Unicode 版本，\u003ccode\u003eicu_unicode_version()\u003c/code\u003e 返回 \u003cacronym\u003eICU\u003c/acronym\u003e 版本，而 \u003ccode\u003eunicode_assigned()\u003c/code\u003e 返回字符是否已分配 Unicode 代码点。\u003c/p\u003e","id":"17.0-4c0677f8341cdc5f","identity_text":"Add Unicode informational functions (Jeff Davis) Function unicode_version() returns the Unicode version, icu_unicode_version() returns the ICU version, and unicode_assigned() returns if the characters are assigned Unicode codepoints.","part":"changes","patch_ids":["79931fb543631c90cf16f622153dcdc3"],"related_changes":[],"relations":[],"section":"函数","section_path":["函数"],"source_commits":["a02b37fc0"],"source_entry_id":"17.0/changes/091","source_hash":"cc44735a328c5003cc930a3cd22d093eb987f9f35465efa045b11f64f247c3b1","source_url":"/docs/release/17.0/#RELEASE-17-FUNCTIONS","statement_hash":"a1d1655351883763ed2a864b4deec2ce5e85fccaea293c517129d5e0c9702f96","text":"添加 Unicode 信息函数（Jeff Davis）§ 函数 unicode_version() 返回 Unicode 版本，icu_unicode_version() 返回 ICU 版本，而 unicode_assigned() 返回字符是否已分配 Unicode 代码点。","title":"添加 Unicode 信息函数","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["526fe0d79"],"commit_groups":[["526fe0d79"]],"commits":["526fe0d79"],"cves":[],"db_id":"1877441fdff0113af5f67821ab127f39","html":"\u003cp\u003e添加函数 \u003ca href=\"/docs/17/functions-xml.html#FUNCTIONS-PRODUCING-XML-XMLTEXT\" title=\"9.15.1.1. xmltext\"\u003e\u003ccode\u003exmltext()\u003c/code\u003e\u003c/a\u003e，用于将文本转换为单个 \u003ccode\u003eXML\u003c/code\u003e 文本节点（Jim Jones）\u003ca href=\"https://postgr.es/c/526fe0d79\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-f1a812077d590a07","identity_text":"Add function xmltext() to convert text to a single XML text node (Jim Jones)","part":"changes","patch_ids":["9c6951624d11cf3d980c925a55d8604b"],"related_changes":[],"relations":[],"section":"函数","section_path":["函数"],"source_commits":["526fe0d79"],"source_entry_id":"17.0/changes/092","source_hash":"a8547f5cf6e52679045cac92e08ad98b7c6ed7bd7e428b1d7933b00151b10475","source_url":"/docs/release/17.0/#RELEASE-17-FUNCTIONS","statement_hash":"603c2a1c52b94398ad4435b66a1a0c7ea097cc75143f6817eadf051c5692a51d","text":"添加函数 xmltext()，用于将文本转换为单个 XML 文本节点（Jim Jones）§","title":"添加函数 xmltext()，用于将文本转换为单个 XML 文本节点","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["1218ca995"],"commit_groups":[["1218ca995"]],"commits":["1218ca995"],"cves":[],"db_id":"243583233ea3761d5c32bc0a323576bb","html":"\u003cp\u003e添加函数 \u003ca href=\"/docs/17/functions-info.html#FUNCTIONS-INFO-CATALOG-TABLE\" title=\"表 9.74. 系统目录信息函数\"\u003e\u003ccode\u003eto_regtypemod()\u003c/code\u003e\u003c/a\u003e，用于返回类型说明的类型修饰符（David Wheeler, Erik Wienhold）\u003ca href=\"https://postgr.es/c/1218ca995\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-c1bb2831f5dc6038","identity_text":"Add function to_regtypemod() to return the type modifier of a type specification (David Wheeler, Erik Wienhold)","part":"changes","patch_ids":["eee42d82f43164744d81f88a590991e5"],"related_changes":[],"relations":[],"section":"函数","section_path":["函数"],"source_commits":["1218ca995"],"source_entry_id":"17.0/changes/093","source_hash":"31b0aef9ac9e882d085f454104b14628907596f21025d6090bf9be74e6fa58e4","source_url":"/docs/release/17.0/#RELEASE-17-FUNCTIONS","statement_hash":"88fe82e132fbfb440b0373e765d49d5eff84d502cbf9ed87c8f952702df07468","text":"添加函数 to_regtypemod()，用于返回类型说明的类型修饰符（David Wheeler, Erik Wienhold）§","title":"添加函数 to_regtypemod()，用于返回类型说明的类型修饰符","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["b154d8a6d"],"commit_groups":[["b154d8a6d"]],"commits":["b154d8a6d"],"cves":[],"db_id":"1ac6aae931b6885a5a1689d1feca85be","html":"\u003cp\u003e添加函数 \u003ca href=\"/docs/17/functions-info.html#FUNCTIONS-INFO-CATALOG-TABLE\" title=\"表 9.74. 系统目录信息函数\"\u003e\u003ccode\u003epg_basetype()\u003c/code\u003e\u003c/a\u003e，用于返回域的基础类型（Steve Chavez）\u003ca href=\"https://postgr.es/c/b154d8a6d\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-559f5e1ec1cfec05","identity_text":"Add pg_basetype() function to return a domain's base type (Steve Chavez)","part":"changes","patch_ids":["041c481b6638d7c950ec3b00379b1cda"],"related_changes":[],"relations":[],"section":"函数","section_path":["函数"],"source_commits":["b154d8a6d"],"source_entry_id":"17.0/changes/094","source_hash":"159230e4dc9d755ccc2796fcb674ef0c6b101fcaea5c451a972ef93023aa68fc","source_url":"/docs/release/17.0/#RELEASE-17-FUNCTIONS","statement_hash":"e0870c59d10b8c2c382a4f599f5b3e18b71c988021e88534d3592f4e89f1db87","text":"添加函数 pg_basetype()，用于返回域的基础类型（Steve Chavez）§","title":"添加函数 pg_basetype()，用于返回域的基础类型","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["d1162cfda"],"commit_groups":[["d1162cfda"]],"commits":["d1162cfda"],"cves":[],"db_id":"63d8497e4d9efcd3afe8781f8345c5a2","html":"\u003cp\u003e添加函数 \u003ca href=\"/docs/17/functions-admin.html#FUNCTIONS-ADMIN-DBSIZE\" title=\"表 9.100. 数据库对象尺寸函数\"\u003e\u003ccode\u003epg_column_toast_chunk_id()\u003c/code\u003e\u003c/a\u003e，用于返回某个值的 \u003ca href=\"/docs/17/storage-toast.html\" title=\"65.2. TOAST\"\u003e\u003cacronym\u003eTOAST\u003c/acronym\u003e\u003c/a\u003e 标识符（Yugo Nagata）\u003ca href=\"https://postgr.es/c/d1162cfda\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e如果该值未存储在 \u003cacronym\u003eTOAST\u003c/acronym\u003e 中，则返回 \u003ccode\u003eNULL\u003c/code\u003e。\u003c/p\u003e","id":"17.0-db4f7869884326c5","identity_text":"Add function pg_column_toast_chunk_id() to return a value's TOAST identifier (Yugo Nagata) This returns NULL if the value is not stored in TOAST.","part":"changes","patch_ids":["a55e787266d1dd8899bfb8744ace2c9e"],"related_changes":[],"relations":[],"section":"函数","section_path":["函数"],"source_commits":["d1162cfda"],"source_entry_id":"17.0/changes/095","source_hash":"89b555b5746d659d0b70ee1ae06db67f62b70fa77a20a2a75ef5bcee32bdad4c","source_url":"/docs/release/17.0/#RELEASE-17-FUNCTIONS","statement_hash":"aeb0aaf8e1c69a242a8a4eccd846a7c4ae99ec503f7418091059cd8d67a0228b","text":"添加函数 pg_column_toast_chunk_id()，用于返回某个值的 TOAST 标识符（Yugo Nagata）§ 如果该值未存储在 TOAST 中，则返回 NULL。","title":"添加函数 pg_column_toast_chunk_id()，用于返回某个值的 TOAST 标识符","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["5e8674dc8"],"commit_groups":[["5e8674dc8"]],"commits":["5e8674dc8"],"cves":[],"db_id":"27417eec43c1f8b072777de9836477dd","html":"\u003cp\u003e允许 plpgsql 的 \u003ca href=\"/docs/17/plpgsql-declarations.html#PLPGSQL-DECLARATION-TYPE\" title=\"41.3.3. 复制类型\"\u003e\u003ccode\u003e%TYPE\u003c/code\u003e\u003c/a\u003e 和 \u003ccode\u003e%ROWTYPE\u003c/code\u003e 说明表示非数组类型的数组（Quan Zongliang, Pavel Stehule）\u003ca href=\"https://postgr.es/c/5e8674dc8\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-82dca12de35b6b18","identity_text":"Allow plpgsql %TYPE and %ROWTYPE specifications to represent arrays of non-array types (Quan Zongliang, Pavel Stehule)","part":"changes","patch_ids":["991a7837ed74853ade1ccbe83142e661"],"related_changes":[],"relations":[],"section":"PL/pgSQL","section_path":["PL/pgSQL"],"source_commits":["5e8674dc8"],"source_entry_id":"17.0/changes/096","source_hash":"d2d82be0430588de611f07e64029399a56514fd2ccf8e80fb469c30f20202b2c","source_url":"/docs/release/17.0/#RELEASE-17-PLPGSQL","statement_hash":"d7f7c1a225fbb8c7456af5a794b6bf2e168476b0fa702e72a124cc016c4f5f5b","text":"允许 plpgsql 的 %TYPE 和 %ROWTYPE 说明表示非数组类型的数组（Quan Zongliang, Pavel Stehule）§","title":"允许 plpgsql 的 %TYPE 和 %ROWTYPE 说明表示非数组类型的数组","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["43b46aae1"],"commit_groups":[["43b46aae1"]],"commits":["43b46aae1"],"cves":[],"db_id":"9219928ca5c3c63ead4103ee4da5e78e","html":"\u003cp\u003e允许 plpgsql 的 \u003ccode\u003e%TYPE\u003c/code\u003e 说明引用复合列（Tom Lane）\u003ca href=\"https://postgr.es/c/43b46aae1\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-a8e1488e653aa8bd","identity_text":"Allow plpgsql %TYPE specification to reference composite column (Tom Lane)","part":"changes","patch_ids":["3cf692449e6e9aff99468579d31d1c7b"],"related_changes":[],"relations":[],"section":"PL/pgSQL","section_path":["PL/pgSQL"],"source_commits":["43b46aae1"],"source_entry_id":"17.0/changes/097","source_hash":"8fb53a2c86d97e1743dbbae9deedea2ff680d532e4f352320f737685f43c6d78","source_url":"/docs/release/17.0/#RELEASE-17-PLPGSQL","statement_hash":"23c35f3cfba2e9ae18301738baf9d3427a025672ca765e43b2d92f71ad17bb47","text":"允许 plpgsql 的 %TYPE 说明引用复合列（Tom Lane）§","title":"允许 plpgsql 的 %TYPE 说明引用复合列","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["a7be2a6c2"],"commit_groups":[["a7be2a6c2"]],"commits":["a7be2a6c2"],"cves":[],"db_id":"15829665cb6976b143b7486cff36a909","html":"\u003cp\u003e添加用于更改角色密码的 libpq 函数（Joe Conway）\u003ca href=\"https://postgr.es/c/a7be2a6c2\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e新函数 \u003ca href=\"/docs/17/libpq-misc.html#LIBPQ-PQCHANGEPASSWORD\"\u003e\u003ccode\u003ePQchangePassword()\u003c/code\u003e\u003c/a\u003e 会在将新密码发送到服务器之前先对其进行 hash 运算。\u003c/p\u003e","id":"17.0-8f1363ef60c2ee48","identity_text":"Add libpq function to change role passwords (Joe Conway) The new function, PQchangePassword(), hashes the new password before sending it to the server.","part":"changes","patch_ids":["7464bef8a4865a6f9545e62e22109345"],"related_changes":[],"relations":[],"section":"libpq","section_path":["libpq"],"source_commits":["a7be2a6c2"],"source_entry_id":"17.0/changes/098","source_hash":"9fc576c104bc59f8fbf48e1e63483098eb99a4c5d90785bc6b0d201c892484cf","source_url":"/docs/release/17.0/#RELEASE-17-LIBPQ","statement_hash":"5133f17d17db2d9bdf071e8102e6f07998fd2a0144edc54550b05dcdb95a96d2","text":"添加用于更改角色密码的 libpq 函数（Joe Conway）§ 新函数 PQchangePassword() 会在将新密码发送到服务器之前先对其进行 hash 运算。","title":"添加用于更改角色密码的 libpq 函数","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["28b572656"],"commit_groups":[["28b572656"]],"commits":["28b572656"],"cves":[],"db_id":"bc87b74f9a0f17afe1a8ebc55c34a059","html":"\u003cp\u003e添加用于关闭 portal 和预备语句的 libpq 函数（Jelte Fennema-Nio）\u003ca href=\"https://postgr.es/c/28b572656\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这些函数是 \u003ca href=\"/docs/17/libpq-exec.html#LIBPQ-PQCLOSEPREPARED\"\u003e\u003ccode\u003ePQclosePrepared()\u003c/code\u003e\u003c/a\u003e、\u003ca href=\"/docs/17/libpq-exec.html#LIBPQ-PQCLOSEPORTAL\"\u003e\u003ccode\u003ePQclosePortal()\u003c/code\u003e\u003c/a\u003e、\u003ca href=\"/docs/17/libpq-async.html#LIBPQ-PQSENDCLOSEPREPARED\"\u003e\u003ccode\u003ePQsendClosePrepared()\u003c/code\u003e\u003c/a\u003e 以及 \u003ca href=\"/docs/17/libpq-async.html#LIBPQ-PQSENDCLOSEPORTAL\"\u003e\u003ccode\u003ePQsendClosePortal()\u003c/code\u003e\u003c/a\u003e。\u003c/p\u003e","id":"17.0-c80a0f021b695098","identity_text":"Add libpq functions to close portals and prepared statements (Jelte Fennema-Nio) The functions are PQclosePrepared(), PQclosePortal(), PQsendClosePrepared(), and PQsendClosePortal().","part":"changes","patch_ids":["0889393c3a80d3b2375dc7514ff6ce53"],"related_changes":[],"relations":[],"section":"libpq","section_path":["libpq"],"source_commits":["28b572656"],"source_entry_id":"17.0/changes/099","source_hash":"ab56a143b585bdba8c62b390dc65d84b22d44fb878c5b2daa1d68049be1ee8b6","source_url":"/docs/release/17.0/#RELEASE-17-LIBPQ","statement_hash":"5b993bad378b1ae709505bb74f286b257857b424ad8c211f48e92006b5919bc8","text":"添加用于关闭 portal 和预备语句的 libpq 函数（Jelte Fennema-Nio）§ 这些函数是 PQclosePrepared()、PQclosePortal()、PQsendClosePrepared() 以及 PQsendClosePortal()。","title":"添加用于关闭 portal 和预备语句的 libpq 函数","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["61461a300"],"commit_groups":[["61461a300"]],"commits":["61461a300"],"cves":[],"db_id":"c41ab395c090156bd1e99f1f0bcb60ee","html":"\u003cp\u003e添加 libpq \u003cacronym\u003eAPI\u003c/acronym\u003e，允许发起阻塞和非阻塞的\u003ca href=\"/docs/17/libpq-cancel.html\" title=\"32.7. 取消进行中的查询\"\u003e取消请求\u003c/a\u003e，并在已启用加密时使用加密（Jelte Fennema-Nio）\u003ca href=\"https://postgr.es/c/61461a300\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e先前只支持阻塞且未加密的取消请求。\u003c/p\u003e","id":"17.0-d7d9937299d79c81","identity_text":"Add libpq API which allows for blocking and non-blocking cancel requests, with encryption if already in use (Jelte Fennema-Nio) Previously only blocking, unencrypted cancel requests were supported.","part":"changes","patch_ids":["895b811a613eec2d6f1b1e045c75002d"],"related_changes":[],"relations":[],"section":"libpq","section_path":["libpq"],"source_commits":["61461a300"],"source_entry_id":"17.0/changes/100","source_hash":"d54e119a239b7eb1cae8c3130cd0674ae27b7ef92186f73d91ffc7bf6852ad29","source_url":"/docs/release/17.0/#RELEASE-17-LIBPQ","statement_hash":"dc23fb5befb8e28cecd4ba96534d7c822571aae4d3edc69402ad77c648851df8","text":"添加 libpq API，允许发起阻塞和非阻塞的取消请求，并在已启用加密时使用加密（Jelte Fennema-Nio）§ 先前只支持阻塞且未加密的取消请求。","title":"添加 libpq API，允许发起阻塞和非阻塞的取消请求，并在已启用加密时使用加密","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["105024a47","f5e4dedfa"],"commit_groups":[["105024a47"],["f5e4dedfa"]],"commits":["105024a47","f5e4dedfa"],"cves":[],"db_id":"cbaf3bd64377062f45eb643434a082da","html":"\u003cp\u003e添加 libpq 函数 \u003ca href=\"/docs/17/libpq-connect.html#LIBPQ-PQSOCKETPOLL\"\u003e\u003ccode\u003ePQsocketPoll()\u003c/code\u003e\u003c/a\u003e，以允许对网络套接字进行轮询（Tristan Partin, Tom Lane）\u003ca href=\"https://postgr.es/c/f5e4dedfa\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/105024a47\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-70a8f09f04e91acb","identity_text":"Add libpq function PQsocketPoll() to allow polling of network sockets (Tristan Partin, Tom Lane)","part":"changes","patch_ids":["1d6b53edfe0dfa07054804b7886c5f0f","5dc602181eb1c14c50c7859db0730c15"],"related_changes":[],"relations":[],"section":"libpq","section_path":["libpq"],"source_commits":["105024a47","f5e4dedfa"],"source_entry_id":"17.0/changes/101","source_hash":"48303b5fe0787d7cd3241263413ef7e33b22fedf5103c236ffab2bcab83e5853","source_url":"/docs/release/17.0/#RELEASE-17-LIBPQ","statement_hash":"c22c6425617054d93f26eb1659d3959ffeff78ab6808c2b85d4884450d064a1d","text":"添加 libpq 函数 PQsocketPoll()，以允许对网络套接字进行轮询（Tristan Partin, Tom Lane）§ §","title":"添加 libpq 函数 PQsocketPoll()，以允许对网络套接字进行轮询","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["4794c2d31"],"commit_groups":[["4794c2d31"]],"commits":["4794c2d31"],"cves":[],"db_id":"fec589edef84133148b8e4f4604a3e3b","html":"\u003cp\u003e添加 libpq 函数 \u003ca href=\"/docs/17/libpq-pipeline-mode.html#LIBPQ-PQSENDPIPELINESYNC\"\u003e\u003ccode\u003ePQsendPipelineSync()\u003c/code\u003e\u003c/a\u003e，用于发送管道同步点（Anton Kirilov）\u003ca href=\"https://postgr.es/c/4794c2d31\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这与 \u003ca href=\"/docs/17/libpq-pipeline-mode.html#LIBPQ-PQPIPELINESYNC\"\u003e\u003ccode\u003ePQpipelineSync()\u003c/code\u003e\u003c/a\u003e 类似，但除非达到输出缓冲区的大小阈值，否则不会将数据刷新到服务器。\u003c/p\u003e","id":"17.0-6c38a752a789111c","identity_text":"Add libpq function PQsendPipelineSync() to send a pipeline synchronization point (Anton Kirilov) This is similar to PQpipelineSync() but it does not flush to the server unless the size threshold of the output buffer is reached.","part":"changes","patch_ids":["3d5d00ece3bd96007583518d3b3e0e60"],"related_changes":[],"relations":[],"section":"libpq","section_path":["libpq"],"source_commits":["4794c2d31"],"source_entry_id":"17.0/changes/102","source_hash":"8189d6207100374bd35e8290afa5e52e847ee3e93677bccbfa70981e5e50a7af","source_url":"/docs/release/17.0/#RELEASE-17-LIBPQ","statement_hash":"f24a3ad0b4080f9dcdaae066bff38f70a2920434f9e3854a6b1890794b058986","text":"添加 libpq 函数 PQsendPipelineSync()，用于发送管道同步点（Anton Kirilov）§ 这与 PQpipelineSync() 类似，但除非达到输出缓冲区的大小阈值，否则不会将数据刷新到服务器。","title":"添加 libpq 函数 PQsendPipelineSync()，用于发送管道同步点","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["4643a2b26"],"commit_groups":[["4643a2b26"]],"commits":["4643a2b26"],"cves":[],"db_id":"165ca2b770af42738a526033a6a7fa80","html":"\u003cp\u003e添加 libpq 函数 \u003ca href=\"/docs/17/libpq-single-row-mode.html#LIBPQ-PQSETCHUNKEDROWSMODE\"\u003e\u003ccode\u003ePQsetChunkedRowsMode()\u003c/code\u003e\u003c/a\u003e，以允许分块获取结果（Daniel Vérité）\u003ca href=\"https://postgr.es/c/4643a2b26\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-3b4a443271748749","identity_text":"Add libpq function PQsetChunkedRowsMode() to allow retrieval of results in chunks (Daniel Vérité)","part":"changes","patch_ids":["ab07549493f029cf0fa1f28f879b6f5f"],"related_changes":[],"relations":[],"section":"libpq","section_path":["libpq"],"source_commits":["4643a2b26"],"source_entry_id":"17.0/changes/103","source_hash":"8aa8cff2a847cbac68b2ae2a469967a4cf97cc0874f466b050a47300adc8f9df","source_url":"/docs/release/17.0/#RELEASE-17-LIBPQ","statement_hash":"3927bb31374c19f76299bfb5efb43c7cd17dbc30022d8220b2040405cd597014","text":"添加 libpq 函数 PQsetChunkedRowsMode()，以允许分块获取结果（Daniel Vérité）§","title":"添加 libpq 函数 PQsetChunkedRowsMode()，以允许分块获取结果","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["03a0e0d4b","17a834a04","407e0b023","44e27f0a6","91044ae4b","d39a49c1e","d80f2ce29","fb5718f35"],"commit_groups":[["03a0e0d4b"],["17a834a04"],["407e0b023"],["44e27f0a6"],["91044ae4b"],["d39a49c1e"],["d80f2ce29"],["fb5718f35"]],"commits":["03a0e0d4b","17a834a04","407e0b023","44e27f0a6","91044ae4b","d39a49c1e","d80f2ce29","fb5718f35"],"cves":[],"db_id":"fb19ddd358bfbe1c1292f9b00df8a32f","html":"\u003cp\u003e允许 \u003cacronym\u003eTLS\u003c/acronym\u003e 连接无需网络往返协商（Greg Stark, Heikki Linnakangas, Peter Eisentraut, Michael Paquier, Daniel Gustafsson）\u003ca href=\"https://postgr.es/c/d39a49c1e\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/91044ae4b\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/44e27f0a6\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/d80f2ce29\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/03a0e0d4b\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/17a834a04\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/407e0b023\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/fb5718f35\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这通过客户端选项 \u003ca href=\"/docs/17/libpq-connect.html#LIBPQ-CONNECT-SSLNEGOTIATION\"\u003e\u003ccode\u003esslnegotiation=direct\u003c/code\u003e\u003c/a\u003e，启用，需要 \u003cacronym\u003eALPN\u003c/acronym\u003e，并且仅适用于 \u003cspan\u003ePostgreSQL\u003c/span\u003e 17 及更高版本的服务器。\u003c/p\u003e","id":"17.0-f7ebd67eecc76635","identity_text":"Allow TLS connections without requiring a network round-trip negotiation (Greg Stark, Heikki Linnakangas, Peter Eisentraut, Michael Paquier, Daniel Gustafsson) This is enabled with the client-side option sslnegotiation=direct, requires ALPN, and only works on PostgreSQL 17 and later servers.","part":"changes","patch_ids":["0859fade916556a425d8d800b9b339e3","3977f3fad04ce8a2b910b61e555db125","51564b11e695ac56a10791153869fe5e","6251866539f346c6cb889d2fa2d25f55","682c4e3071cd582a50bb0e71fda920b3","88ec9faec3acf974fc1e2b60029bc059","916ece1653632e038584ec18ff29655e","aa89e4b3b0a69caec96cfd02910b6cfe"],"related_changes":[],"relations":[],"section":"libpq","section_path":["libpq"],"source_commits":["03a0e0d4b","17a834a04","407e0b023","44e27f0a6","91044ae4b","d39a49c1e","d80f2ce29","fb5718f35"],"source_entry_id":"17.0/changes/104","source_hash":"f68bb7d963740e1fac33c19d5831fce83b430b07aad2b1e8c08df801f63fe84f","source_url":"/docs/release/17.0/#RELEASE-17-LIBPQ","statement_hash":"749c6dad575a6af589dc46a8832a99dd52f11e5f0daf4d29c7c76d203ff294b0","text":"允许 TLS 连接无需网络往返协商（Greg Stark, Heikki Linnakangas, Peter Eisentraut, Michael Paquier, Daniel Gustafsson）§ § § § § § § § 这通过客户端选项 sslnegotiation=direct，启用，需要 ALPN，并且仅适用于 PostgreSQL 17 及更高版本的服务器。","title":"允许 TLS 连接无需网络往返协商","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["d1379ebf4"],"commit_groups":[["d1379ebf4"]],"commits":["d1379ebf4"],"cves":[],"db_id":"a3feb7cbb6e76e80ed09f7b28383c023","html":"\u003cp\u003e改进 \u003cspan\u003epsql\u003c/span\u003e 对默认权限和空权限的显示（Erik Wienhold, Laurenz Albe）\u003ca href=\"https://postgr.es/c/d1379ebf4\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003e\\dp\u003c/code\u003e 命令现在对空权限显示 \u003ccode\u003e(none)\u003c/code\u003e；默认权限仍显示为空。\u003c/p\u003e","id":"17.0-25d32605e982883f-1","identity_text":"Improve psql display of default and empty privileges (Erik Wienhold, Laurenz Albe) Command \\dp now displays (none) for empty privileges; default still displays as empty.","part":"changes","patch_ids":["842b2ae80cd9f3d47a7a7e791f8289a8"],"related_changes":[{"db_id":"d8a972240c18977c1d8140fe0ed0dce3","evidence":{"ambiguous_patch_ids":["842b2ae80cd9f3d47a7a7e791f8289a8"],"patch_ids":["842b2ae80cd9f3d47a7a7e791f8289a8"],"same_day":true},"kind":"related","label":"17.0","source_url":"/docs/release/17.0/#RELEASE-17-PSQL","title":"使反斜杠命令遵循 \\pset null","url":"/docs/compare/?release=17.0#17.0-25d32605e982883f-2","version":"17.0"}],"relations":[{"evidence":{"ambiguous_patch_ids":["842b2ae80cd9f3d47a7a7e791f8289a8"],"patch_ids":["842b2ae80cd9f3d47a7a7e791f8289a8"],"same_day":true},"rule":2,"target":"d8a972240c18977c1d8140fe0ed0dce3","type":"related"}],"section":"psql","section_path":["psql"],"source_commits":["d1379ebf4"],"source_entry_id":"17.0/changes/105","source_hash":"d4afbedc055942c8a9811944814c172c0d0ba38bfc5a8232093abd9e0db38e13","source_url":"/docs/release/17.0/#RELEASE-17-PSQL","statement_hash":"55a4a8f4f1450e89b21e7fe47bcac030b79e7db736f92f904303eb06839cba7c","text":"改进 psql 对默认权限和空权限的显示（Erik Wienhold, Laurenz Albe）§ \\dp 命令现在对空权限显示 (none)；默认权限仍显示为空。","title":"改进 psql 对默认权限和空权限的显示","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["d1379ebf4"],"commit_groups":[["d1379ebf4"]],"commits":["d1379ebf4"],"cves":[],"db_id":"d8a972240c18977c1d8140fe0ed0dce3","html":"\u003cp\u003e使反斜杠命令遵循 \u003ccode\u003e\\pset null\u003c/code\u003e（Erik Wienhold, Laurenz Albe）\u003ca href=\"https://postgr.es/c/d1379ebf4\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e先前 \u003ccode\u003e\\pset null\u003c/code\u003e 会被忽略。\u003c/p\u003e","id":"17.0-25d32605e982883f-2","identity_text":"Have backslash commands honor \\pset null (Erik Wienhold, Laurenz Albe) Previously \\pset null was ignored.","part":"changes","patch_ids":["842b2ae80cd9f3d47a7a7e791f8289a8"],"related_changes":[{"db_id":"a3feb7cbb6e76e80ed09f7b28383c023","evidence":{"ambiguous_patch_ids":["842b2ae80cd9f3d47a7a7e791f8289a8"],"patch_ids":["842b2ae80cd9f3d47a7a7e791f8289a8"],"same_day":true},"kind":"related","label":"17.0","source_url":"/docs/release/17.0/#RELEASE-17-PSQL","title":"改进 psql 对默认权限和空权限的显示","url":"/docs/compare/?release=17.0#17.0-25d32605e982883f-1","version":"17.0"}],"relations":[{"evidence":{"ambiguous_patch_ids":["842b2ae80cd9f3d47a7a7e791f8289a8"],"patch_ids":["842b2ae80cd9f3d47a7a7e791f8289a8"],"same_day":true},"rule":2,"target":"a3feb7cbb6e76e80ed09f7b28383c023","type":"related"}],"section":"psql","section_path":["psql"],"source_commits":["d1379ebf4"],"source_entry_id":"17.0/changes/106","source_hash":"5689d9179a0d774614c82a48d411ff08f745291a58b25bbdff92ea18d479bd74","source_url":"/docs/release/17.0/#RELEASE-17-PSQL","statement_hash":"f692c90220e75dc03007d5e5881cea74d5ea774be7f28b89b2d90f17facccfe9","text":"使反斜杠命令遵循 \\pset null（Erik Wienhold, Laurenz Albe）§ 先前 \\pset null 会被忽略。","title":"使反斜杠命令遵循 \\pset null","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["f347ec76e"],"commit_groups":[["f347ec76e"]],"commits":["f347ec76e"],"cves":[],"db_id":"45ff7c8c03d6e4103c9e41abb47b1842","html":"\u003cp\u003e允许 \u003cspan\u003epsql\u003c/span\u003e 的 \u003ccode\u003e\\watch\u003c/code\u003e 在返回行数达到最小值后停止（Greg Sabino Mullane）\u003ca href=\"https://postgr.es/c/f347ec76e\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e该参数是 \u003ccode\u003emin_rows\u003c/code\u003e。\u003c/p\u003e","id":"17.0-3334181adffd92fa","identity_text":"Allow psql's \\watch to stop after a minimum number of rows returned (Greg Sabino Mullane) The parameter is min_rows.","part":"changes","patch_ids":["8fed80202eb4723f794e4f8125adef5c"],"related_changes":[],"relations":[],"section":"psql","section_path":["psql"],"source_commits":["f347ec76e"],"source_entry_id":"17.0/changes/107","source_hash":"7107b65aadf1179e0ea1259bb1b753457a6a68c9b73cee13845f7e5b6618a0d6","source_url":"/docs/release/17.0/#RELEASE-17-PSQL","statement_hash":"dfa38800684886dcdb5c7fe6179c692535d6511a0ae88ffa932b5c3c42306105","text":"允许 psql 的 \\watch 在返回行数达到最小值后停止（Greg Sabino Mullane）§ 该参数是 min_rows。","title":"允许 psql 的 \\watch 在返回行数达到最小值后停止","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["cafe10565"],"commit_groups":[["cafe10565"]],"commits":["cafe10565"],"cves":[],"db_id":"49dd3ce0aded54b35e4242824e547154","html":"\u003cp\u003e允许使用 control-C 取消 \u003cspan\u003epsql\u003c/span\u003e 的连接尝试（Tristan Partin）\u003ca href=\"https://postgr.es/c/cafe10565\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-cfdb9648451933ed","identity_text":"Allow psql connection attempts to be canceled with control-C (Tristan Partin)","part":"changes","patch_ids":["3ad09a5ea75ff8abcb322c7fb9ec1ea8"],"related_changes":[],"relations":[],"section":"psql","section_path":["psql"],"source_commits":["cafe10565"],"source_entry_id":"17.0/changes/108","source_hash":"a229fbb00722a40bf043a201d2213121b68758f1fc7a9696ec6f512a332219de","source_url":"/docs/release/17.0/#RELEASE-17-PSQL","statement_hash":"32418ca3ad990c96973186460ab2da2a7d3a31af0f39d15632c0ec4506068398","text":"允许使用 control-C 取消 psql 的连接尝试（Tristan Partin）§","title":"允许使用 control-C 取消 psql 的连接尝试","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["90f517821"],"commit_groups":[["90f517821"]],"commits":["90f517821"],"cves":[],"db_id":"39a7fad6f3d8673b8fb6a1a7dc7d81be","html":"\u003cp\u003e允许 \u003cspan\u003epsql\u003c/span\u003e 在非 \u003ccode\u003eSELECT\u003c/code\u003e 查询中遵循 \u003ccode\u003eFETCH_COUNT\u003c/code\u003e（Daniel Vérité）\u003ca href=\"https://postgr.es/c/90f517821\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-977aedb721071846","identity_text":"Allow psql to honor FETCH_COUNT for non-SELECT queries (Daniel Vérité)","part":"changes","patch_ids":["f9a1e3c0862a9d53dd1a1ad0eab6ecc7"],"related_changes":[],"relations":[],"section":"psql","section_path":["psql"],"source_commits":["90f517821"],"source_entry_id":"17.0/changes/109","source_hash":"5b873d1cc1fefc393c34e069c2986b611c283c347cc6c996df3412f2cb25de75","source_url":"/docs/release/17.0/#RELEASE-17-PSQL","statement_hash":"83d091a0e7acbf30315e09e51164b1345c97a8a59b2b9ed1517b7ce088a9797d","text":"允许 psql 在非 SELECT 查询中遵循 FETCH_COUNT（Daniel Vérité）§","title":"允许 psql 在非 SELECT 查询中遵循 FETCH_COUNT","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["2800fbb2b","304b6b1a6","816f10564","927332b95","c951e9042","cd3424748","d16eb83ab","f1bb9284f"],"commit_groups":[["2800fbb2b"],["304b6b1a6"],["816f10564"],["927332b95"],["c951e9042"],["cd3424748"],["d16eb83ab"],["f1bb9284f"]],"commits":["2800fbb2b","304b6b1a6","816f10564","927332b95","c951e9042","cd3424748","d16eb83ab","f1bb9284f"],"cves":[],"db_id":"8a83a68cf9c642d6f0d81dd5c4538939","html":"\u003cp\u003e改进 \u003cspan\u003epsql\u003c/span\u003e 的 Tab 补全（Dagfinn Ilmari Mannsåker, Gilles Darold, Christoph Heiss, Steve Chavez, Vignesh C, Pavel Borisov, Jian He）\u003ca href=\"https://postgr.es/c/c951e9042\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/d16eb83ab\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/cd3424748\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/816f10564\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/927332b95\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/f1bb9284f\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/304b6b1a6\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/2800fbb2b\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-93a6ad1bd3c065d9","identity_text":"Improve psql tab completion (Dagfinn Ilmari Mannsåker, Gilles Darold, Christoph Heiss, Steve Chavez, Vignesh C, Pavel Borisov, Jian He)","part":"changes","patch_ids":["30b0e0d67c96e1af3a5dcb5764554836","322a658f6fe8acba4737659a5aa67064","47b0c548f88b8732b47e85c8d15f6508","4c89f0d9a6a6f19c5e8f969fa03dc795","89e3073da799734a59c68448468364a2","8f0cd536103759c943a4a1f4310b1a31","9913c02b11bf9cd854643f389b9fbb2f","9fbd7907ba6c4447e8fcd062aed96976"],"related_changes":[],"relations":[],"section":"psql","section_path":["psql"],"source_commits":["2800fbb2b","304b6b1a6","816f10564","927332b95","c951e9042","cd3424748","d16eb83ab","f1bb9284f"],"source_entry_id":"17.0/changes/110","source_hash":"5ec74edd9164024c9c6f26a998c983938ae467504edf3382816a070717dd2cb9","source_url":"/docs/release/17.0/#RELEASE-17-PSQL","statement_hash":"0e0c30574ccccd247ef0267b9022929d97ae219ca405903d917fa8b9c007e2fd","text":"改进 psql 的 Tab 补全（Dagfinn Ilmari Mannsåker, Gilles Darold, Christoph Heiss, Steve Chavez, Vignesh C, Pavel Borisov, Jian He）§ § § § § § § §","title":"改进 psql 的 Tab 补全","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["ee1bfd168"],"commit_groups":[["ee1bfd168"]],"commits":["ee1bfd168"],"cves":[],"db_id":"d3dc6ba36a8f40a3270798a39dc903da","html":"\u003cp\u003e添加应用程序\u003ca href=\"/docs/17/app-pgwalsummary.html\" title=\"pg_walsummary\"\u003e\u003cspan\u003epg_walsummary\u003c/span\u003e\u003c/a\u003e，用于转储 \u003cacronym\u003eWAL\u003c/acronym\u003e 摘要文件（Robert Haas）\u003ca href=\"https://postgr.es/c/ee1bfd168\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-3289f2c3702b97c1","identity_text":"Add application pg_walsummary to dump WAL summary files (Robert Haas)","part":"changes","patch_ids":["17673204e54def221f01494b2d75083a"],"related_changes":[],"relations":[],"section":"服务器应用","section_path":["服务器应用"],"source_commits":["ee1bfd168"],"source_entry_id":"17.0/changes/111","source_hash":"be92d8f8d514c31de3e7864da8bc02d1082f90ce243b5ac0122a1f15ca057984","source_url":"/docs/release/17.0/#RELEASE-17-SERVER-APPS","statement_hash":"4e29b800a84b12f2c104da5f4dede1f0b3f3c8b23e25b94008bff0587ef561d2","text":"添加应用程序pg_walsummary，用于转储 WAL 摘要文件（Robert Haas）§","title":"添加应用程序pg_walsummary，用于转储 WAL 摘要文件","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["a45c78e32"],"commit_groups":[["a45c78e32"]],"commits":["a45c78e32"],"cves":[],"db_id":"062c082924121dc8b43d7d09e1fa17d4","html":"\u003cp\u003e允许\u003ca href=\"/docs/17/app-pgdump.html\" title=\"pg_dump\"\u003e\u003cspan\u003epg_dump\u003c/span\u003e\u003c/a\u003e的大型对象分批恢复（Tom Lane）\u003ca href=\"https://postgr.es/c/a45c78e32\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这使大量大型对象的恢复能够避开事务限制，并支持并行恢复。\u003c/p\u003e","id":"17.0-383c090b1fcc8262","identity_text":"Allow pg_dump's large objects to be restorable in batches (Tom Lane) This allows the restoration of many large objects to avoid transaction limits and to be restored in parallel.","part":"changes","patch_ids":["01587d1147cb509a46ece174e411b501"],"related_changes":[],"relations":[],"section":"服务器应用","section_path":["服务器应用"],"source_commits":["a45c78e32"],"source_entry_id":"17.0/changes/112","source_hash":"e19c0d4e8698607c86d131f57ccec046853a089f8dbd7ba4f7ec1e2a0f642799","source_url":"/docs/release/17.0/#RELEASE-17-SERVER-APPS","statement_hash":"d574aaffe562e11a8f628d13c56040f9dbe7164043c409abcf6ab7703802d162","text":"允许pg_dump的大型对象分批恢复（Tom Lane）§ 这使大量大型对象的恢复能够避开事务限制，并支持并行恢复。","title":"允许pg_dump的大型对象分批恢复","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["522ed12f7"],"commit_groups":[["522ed12f7"]],"commits":["522ed12f7"],"cves":[],"db_id":"c720c385368aecd31b17498de49a0e31","html":"\u003cp\u003e添加 \u003cspan\u003epg_dump\u003c/span\u003e 选项 \u003ccode\u003e--exclude-extension\u003c/code\u003e（Ayush Vatsa）\u003ca href=\"https://postgr.es/c/522ed12f7\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-58a8f8f586d29467","identity_text":"Add pg_dump option --exclude-extension (Ayush Vatsa)","part":"changes","patch_ids":["955aad17a791ac5c652f14bb03633841"],"related_changes":[],"relations":[],"section":"服务器应用","section_path":["服务器应用"],"source_commits":["522ed12f7"],"source_entry_id":"17.0/changes/113","source_hash":"09f31e6990e10c24ef444387656c434b2c3127d0f34794bc1853569e1a269e09","source_url":"/docs/release/17.0/#RELEASE-17-SERVER-APPS","statement_hash":"4b3a5ac8af8590ad6d797832622ecb139520115a75a5d57e67d899f1f2fdd40a","text":"添加 pg_dump 选项 --exclude-extension（Ayush Vatsa）§","title":"添加 pg_dump 选项 --exclude-extension","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["a5cf808be"],"commit_groups":[["a5cf808be"]],"commits":["a5cf808be"],"cves":[],"db_id":"6e921a29d96eba39cb9a12aca845c19d","html":"\u003cp\u003e允许\u003ca href=\"/docs/17/app-pgdump.html\" title=\"pg_dump\"\u003e\u003cspan\u003epg_dump\u003c/span\u003e\u003c/a\u003e、\u003ca href=\"/docs/17/app-pg-dumpall.html\" title=\"pg_dumpall\"\u003e\u003cspan\u003epg_dumpall\u003c/span\u003e\u003c/a\u003e和\u003ca href=\"/docs/17/app-pgrestore.html\" title=\"pg_restore\"\u003e\u003cspan\u003epg_restore\u003c/span\u003e\u003c/a\u003e在文件中指定要包含或排除的对象（Pavel Stehule, Daniel Gustafsson）\u003ca href=\"https://postgr.es/c/a5cf808be\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e该选项名为 \u003ccode\u003e--filter\u003c/code\u003e。\u003c/p\u003e","id":"17.0-1c019602b8c4664f","identity_text":"Allow pg_dump, pg_dumpall, and pg_restore to specify include/exclude objects in a file (Pavel Stehule, Daniel Gustafsson) The option is called --filter.","part":"changes","patch_ids":["0ed3de9da8db79e916dcff314dc14916"],"related_changes":[],"relations":[],"section":"服务器应用","section_path":["服务器应用"],"source_commits":["a5cf808be"],"source_entry_id":"17.0/changes/114","source_hash":"01c1d7619eb94b800b69c839e53f60adf6ec57e8bdedb78c92cbac9d9d11c233","source_url":"/docs/release/17.0/#RELEASE-17-SERVER-APPS","statement_hash":"e985ba10a8d813ffd4dcb78315ec3677ea1c684b78d9b1a616df0199244e0733","text":"允许pg_dump、pg_dumpall和pg_restore在文件中指定要包含或排除的对象（Pavel Stehule, Daniel Gustafsson）§ 该选项名为 --filter。","title":"允许pg_dump、pg_dumpall和pg_restore在文件中指定要包含或排除的对象","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["8c16ad3b4"],"commit_groups":[["8c16ad3b4"]],"commits":["8c16ad3b4"],"cves":[],"db_id":"5be03430ce72863326f86554786d4856","html":"\u003cp\u003e为多个客户端应用程序添加 \u003ccode\u003e--sync-method\u003c/code\u003e 参数（Justin Pryzby, Nathan Bossart）\u003ca href=\"https://postgr.es/c/8c16ad3b4\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这些应用程序是\u003ca href=\"/docs/17/app-initdb.html\" title=\"initdb\"\u003e\u003cspan\u003einitdb\u003c/span\u003e\u003c/a\u003e、\u003ca href=\"/docs/17/app-pgbasebackup.html\" title=\"pg_basebackup\"\u003e\u003cspan\u003epg_basebackup\u003c/span\u003e\u003c/a\u003e、\u003ca href=\"/docs/17/app-pgchecksums.html\" title=\"pg_checksums\"\u003e\u003cspan\u003epg_checksums\u003c/span\u003e\u003c/a\u003e、\u003ca href=\"/docs/17/app-pgdump.html\" title=\"pg_dump\"\u003e\u003cspan\u003epg_dump\u003c/span\u003e\u003c/a\u003e、\u003ca href=\"/docs/17/app-pgrewind.html\" title=\"pg_rewind\"\u003e\u003cspan\u003epg_rewind\u003c/span\u003e\u003c/a\u003e和\u003ca href=\"/docs/17/pgupgrade.html\" title=\"pg_upgrade\"\u003e\u003cspan\u003epg_upgrade\u003c/span\u003e\u003c/a\u003e。\u003c/p\u003e","id":"17.0-3f028c249c82a4c8","identity_text":"Add the --sync-method parameter to several client applications (Justin Pryzby, Nathan Bossart) The applications are initdb, pg_basebackup, pg_checksums, pg_dump, pg_rewind, and pg_upgrade.","part":"changes","patch_ids":["a77cb2d9cdf142e159627eaeacab0702"],"related_changes":[],"relations":[],"section":"服务器应用","section_path":["服务器应用"],"source_commits":["8c16ad3b4"],"source_entry_id":"17.0/changes/115","source_hash":"1303e5e826a2bb3868d866cad3c1ae1ac22fa9613a4c4ea2e013b36b2ac1bdc8","source_url":"/docs/release/17.0/#RELEASE-17-SERVER-APPS","statement_hash":"e682acccfcf90a57d337b76922612b805d21091f20bf6c6623dff3be080bcb8a","text":"为多个客户端应用程序添加 --sync-method 参数（Justin Pryzby, Nathan Bossart）§ 这些应用程序是initdb、pg_basebackup、pg_checksums、pg_dump、pg_rewind和pg_upgrade。","title":"为多个客户端应用程序添加 --sync-method 参数","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["959b38d77"],"commit_groups":[["959b38d77"]],"commits":["959b38d77"],"cves":[],"db_id":"d3fce2adcba58fc12b1abe09c1296c03","html":"\u003cp\u003e为\u003ca href=\"/docs/17/app-pgrestore.html\" title=\"pg_restore\"\u003e\u003cspan\u003epg_restore\u003c/span\u003e\u003c/a\u003e添加 \u003ccode\u003e--transaction-size\u003c/code\u003e 选项，允许按事务批次恢复对象（Tom Lane）\u003ca href=\"https://postgr.es/c/959b38d77\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这既能获得事务批处理的性能收益，又能避免事务块过大的问题。\u003c/p\u003e","id":"17.0-62b0b2dae08594f2","identity_text":"Add pg_restore option --transaction-size to allow object restores in transaction batches (Tom Lane) This allows the performance benefits of transaction batches without the problems of excessively large transaction blocks.","part":"changes","patch_ids":["5e34e60bd114dee6d27de4ef07db683e"],"related_changes":[],"relations":[],"section":"服务器应用","section_path":["服务器应用"],"source_commits":["959b38d77"],"source_entry_id":"17.0/changes/116","source_hash":"17267ef422c757038cdb1494e4f7f2868de188fab8e78a8f8b25421498561393","source_url":"/docs/release/17.0/#RELEASE-17-SERVER-APPS","statement_hash":"a3f29534cc391a88f5718d81056174323b7b0ffdf74ce97b2ca813e2124e10fe","text":"为pg_restore添加 --transaction-size 选项，允许按事务批次恢复对象（Tom Lane）§ 这既能获得事务批处理的性能收益，又能避免事务块过大的问题。","title":"为pg_restore添加 --transaction-size 选项，允许按事务批次恢复对象","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["3ff01b2b6"],"commit_groups":[["3ff01b2b6"]],"commits":["3ff01b2b6"],"cves":[],"db_id":"814b6163607242f0a5325bfdd8d812c7","html":"\u003cp\u003e将\u003ca href=\"/docs/17/pgbench.html\" title=\"pgbench\"\u003e\u003cspan\u003epgbench\u003c/span\u003e\u003c/a\u003e的调试模式选项从 \u003ccode\u003e-d\u003c/code\u003e 改为 \u003ccode\u003e--debug\u003c/code\u003e（Greg Sabino Mullane）\u003ca href=\"https://postgr.es/c/3ff01b2b6\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003e-d\u003c/code\u003e 现在用于数据库名，同时也可以使用新的 \u003ccode\u003e--dbname\u003c/code\u003e 选项。\u003c/p\u003e","id":"17.0-4dabdcd85c321b44","identity_text":"Change pgbench debug mode option from -d to --debug (Greg Sabino Mullane) Option -d is now used for the database name, and the new --dbname option can be used as well.","part":"changes","patch_ids":["199b1468636df5e00d3df58106afc14f"],"related_changes":[],"relations":[],"section":"服务器应用","section_path":["服务器应用"],"source_commits":["3ff01b2b6"],"source_entry_id":"17.0/changes/117","source_hash":"8f8c127f9354a296b7177dce7556a770360b2d079c7a04e96681ee7b782983c6","source_url":"/docs/release/17.0/#RELEASE-17-SERVER-APPS","statement_hash":"261df8ddab2c41253badc617f040f9c03111599a5c7a54bdb1efd5c9e963aa17","text":"将pgbench的调试模式选项从 -d 改为 --debug（Greg Sabino Mullane）§ -d 现在用于数据库名，同时也可以使用新的 --dbname 选项。","title":"将pgbench的调试模式选项从 -d 改为 --debug","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["3c662643c"],"commit_groups":[["3c662643c"]],"commits":["3c662643c"],"cves":[],"db_id":"a25ce17e6f8114f0d076f7a1742f9dfe","html":"\u003cp\u003e添加 pgbench 选项 \u003ccode\u003e--exit-on-abort\u003c/code\u003e，以便在任一客户端中止后退出（Yugo Nagata）\u003ca href=\"https://postgr.es/c/3c662643c\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-b0d9d8ecac0ad499","identity_text":"Add pgbench option --exit-on-abort to exit after any client aborts (Yugo Nagata)","part":"changes","patch_ids":["fc15b08e3c71549c3ca32d04f9daa421"],"related_changes":[],"relations":[],"section":"服务器应用","section_path":["服务器应用"],"source_commits":["3c662643c"],"source_entry_id":"17.0/changes/118","source_hash":"40657065824bc654fec133d919f02654aa046a2f83ebe8bbda2f58f5cf5bcf31","source_url":"/docs/release/17.0/#RELEASE-17-SERVER-APPS","statement_hash":"3c07aae40b3a8ad1e44701b70006b4cbe2fb1e03274bcb81df11c4a5bcf24e33","text":"添加 pgbench 选项 --exit-on-abort，以便在任一客户端中止后退出（Yugo Nagata）§","title":"添加 pgbench 选项 --exit-on-abort，以便在任一客户端中止后退出","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["94edfe250"],"commit_groups":[["94edfe250"]],"commits":["94edfe250"],"cves":[],"db_id":"ee70b5491bf8a49ce7c18314a2ab3e7c","html":"\u003cp\u003e添加 pgbench 命令 \u003ccode\u003e\\syncpipeline\u003c/code\u003e，用于发送同步消息（Anthonin Bonnefoy）\u003ca href=\"https://postgr.es/c/94edfe250\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-3c9e49a6a6f47409","identity_text":"Add pgbench command \\syncpipeline to allow sending of sync messages (Anthonin Bonnefoy)","part":"changes","patch_ids":["5ca1e32d081de48ad74233cbb08afb22"],"related_changes":[],"relations":[],"section":"服务器应用","section_path":["服务器应用"],"source_commits":["94edfe250"],"source_entry_id":"17.0/changes/119","source_hash":"03a82448689e24e5d029010ce0b7e47a3ec65ba2e3eb0045cda192d4463f6de8","source_url":"/docs/release/17.0/#RELEASE-17-SERVER-APPS","statement_hash":"46a5465945c7e7b3ba2391bb4c7f284171defd7bbec08ff89ff0b01f417ea2c3","text":"添加 pgbench 命令 \\syncpipeline，用于发送同步消息（Anthonin Bonnefoy）§","title":"添加 pgbench 命令 \\syncpipeline，用于发送同步消息","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["3f8c98d0b"],"commit_groups":[["3f8c98d0b"]],"commits":["3f8c98d0b"],"cves":[],"db_id":"43de9c53a3b095b00a1c2d972cc4cd14","html":"\u003cp\u003e允许\u003ca href=\"/docs/17/pgarchivecleanup.html\" title=\"pg_archivecleanup\"\u003e\u003cspan\u003epg_archivecleanup\u003c/span\u003e\u003c/a\u003e删除备份历史文件（Atsushi Torikoshi）\u003ca href=\"https://postgr.es/c/3f8c98d0b\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e该选项是 \u003ccode\u003e--clean-backup-history\u003c/code\u003e。\u003c/p\u003e","id":"17.0-8fceea9da078d961","identity_text":"Allow pg_archivecleanup to remove backup history files (Atsushi Torikoshi) The option is --clean-backup-history.","part":"changes","patch_ids":["880da8d0f1844f2cffcfb62d7caa2733"],"related_changes":[],"relations":[],"section":"服务器应用","section_path":["服务器应用"],"source_commits":["3f8c98d0b"],"source_entry_id":"17.0/changes/120","source_hash":"fa178bd435d168b9d0925d1bc986681c590b0c0fea8917a798a931aab42d2621","source_url":"/docs/release/17.0/#RELEASE-17-SERVER-APPS","statement_hash":"18444fb728c062492ca13445b872237928821d56bd050da684f8558cbb5266fe","text":"允许pg_archivecleanup删除备份历史文件（Atsushi Torikoshi）§ 该选项是 --clean-backup-history。","title":"允许pg_archivecleanup删除备份历史文件","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["dd7c60f19"],"commit_groups":[["dd7c60f19"]],"commits":["dd7c60f19"],"cves":[],"db_id":"01de18fe9f80c42de97f1e13ebb9087a","html":"\u003cp\u003e为 \u003cspan\u003epg_archivecleanup\u003c/span\u003e 添加一些长选项（Atsushi Torikoshi）\u003ca href=\"https://postgr.es/c/dd7c60f19\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这些长选项是 \u003ccode\u003e--debug\u003c/code\u003e、\u003ccode\u003e--dry-run\u003c/code\u003e 和 \u003ccode\u003e--strip-extension\u003c/code\u003e。\u003c/p\u003e","id":"17.0-6f038d76fa8c5ad7","identity_text":"Add some long options to pg_archivecleanup (Atsushi Torikoshi) The long options are --debug, --dry-run, and --strip-extension.","part":"changes","patch_ids":["d92935efb7fbe57a9923613e2a39db2f"],"related_changes":[],"relations":[],"section":"服务器应用","section_path":["服务器应用"],"source_commits":["dd7c60f19"],"source_entry_id":"17.0/changes/121","source_hash":"c64dda46baf6ccf879bf963b03618238b918615147472ab58bf96e8ddc400ea7","source_url":"/docs/release/17.0/#RELEASE-17-SERVER-APPS","statement_hash":"04eec46d490d77a1fadbc0a2f019b90e37fb6bdf271b81857633c422c897562f","text":"为 pg_archivecleanup 添加一些长选项（Atsushi Torikoshi）§ 这些长选项是 --debug、--dry-run 和 --strip-extension。","title":"为 pg_archivecleanup 添加一些长选项","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["cca97ce6a"],"commit_groups":[["cca97ce6a"]],"commits":["cca97ce6a"],"cves":[],"db_id":"268281a16c5db7f57f2c0b6d9d6807d8","html":"\u003cp\u003e允许\u003ca href=\"/docs/17/app-pgbasebackup.html\" title=\"pg_basebackup\"\u003e\u003cspan\u003epg_basebackup\u003c/span\u003e\u003c/a\u003e和\u003ca href=\"/docs/17/app-pgreceivewal.html\" title=\"pg_receivewal\"\u003e\u003cspan\u003epg_receivewal\u003c/span\u003e\u003c/a\u003e在其连接字符串中使用 dbname（Jelte Fennema-Nio）\u003ca href=\"https://postgr.es/c/cca97ce6a\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这对那些对数据库名敏感的连接池很有用。\u003c/p\u003e","id":"17.0-1c7cefd452c4088a","identity_text":"Allow pg_basebackup and pg_receivewal to use dbname in their connection specification (Jelte Fennema-Nio) This is useful for connection poolers that are sensitive to the database name.","part":"changes","patch_ids":["b7c713bf4459c507781f24392f77d777"],"related_changes":[],"relations":[],"section":"服务器应用","section_path":["服务器应用"],"source_commits":["cca97ce6a"],"source_entry_id":"17.0/changes/122","source_hash":"4e6811fae28628c05efb289637958ce018fc9a8114cff89b29d602d888f740b1","source_url":"/docs/release/17.0/#RELEASE-17-SERVER-APPS","statement_hash":"0fb3f8d72c23fb88b1aa1b1207fff42015397df8eee0d64415e7c9d903b73234","text":"允许pg_basebackup和pg_receivewal在其连接字符串中使用 dbname（Jelte Fennema-Nio）§ 这对那些对数据库名敏感的连接池很有用。","title":"允许pg_basebackup和pg_receivewal在其连接字符串中使用 dbname","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["d93627bcb"],"commit_groups":[["d93627bcb"]],"commits":["d93627bcb"],"cves":[],"db_id":"d9eb158bf4232ae62487876af438c06d","html":"\u003cp\u003e添加\u003ca href=\"/docs/17/pgupgrade.html\" title=\"pg_upgrade\"\u003e\u003cspan\u003epg_upgrade\u003c/span\u003e\u003c/a\u003e选项 \u003ccode\u003e--copy-file-range\u003c/code\u003e（Thomas Munro）\u003ca href=\"https://postgr.es/c/d93627bcb\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这在 \u003cspan\u003eLinux\u003c/span\u003e 和 \u003cspan\u003eFreeBSD\u003c/span\u003e 上受支持。\u003c/p\u003e","id":"17.0-4c719d2b3e168ee2","identity_text":"Add pg_upgrade option --copy-file-range (Thomas Munro) This is supported on Linux and FreeBSD.","part":"changes","patch_ids":["e3b451bd7f1062b048f221eb095d7fbe"],"related_changes":[],"relations":[],"section":"服务器应用","section_path":["服务器应用"],"source_commits":["d93627bcb"],"source_entry_id":"17.0/changes/123","source_hash":"962dcd4ff0150d4d31960c278d8555a1487cd81282a4d228efeaebd361448276","source_url":"/docs/release/17.0/#RELEASE-17-SERVER-APPS","statement_hash":"c36ff478955582e7fe6ea357a4490710a32eadf2bc24a85a1303eaf4756f4024","text":"添加pg_upgrade选项 --copy-file-range（Thomas Munro）§ 这在 Linux 和 FreeBSD 上受支持。","title":"添加pg_upgrade选项 --copy-file-range","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["47f99a407"],"commit_groups":[["47f99a407"]],"commits":["47f99a407"],"cves":[],"db_id":"0776c9ea52ffd9c02157b2f0809ba028","html":"\u003cp\u003e允许\u003ca href=\"/docs/17/app-reindexdb.html\" title=\"reindexdb\"\u003e\u003cspan\u003ereindexdb\u003c/span\u003e\u003c/a\u003e的 \u003ccode\u003e--index\u003c/code\u003e 并行处理来自不同表的索引（Maxim Orlov, Svetlana Derevyanko, Alexander Korotkov）\u003ca href=\"https://postgr.es/c/47f99a407\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-3b1333e81de46fc0","identity_text":"Allow reindexdb --index to process indexes from different tables in parallel (Maxim Orlov, Svetlana Derevyanko, Alexander Korotkov)","part":"changes","patch_ids":["28bfcb20ba62300331e0a36f918cae7e"],"related_changes":[],"relations":[],"section":"服务器应用","section_path":["服务器应用"],"source_commits":["47f99a407"],"source_entry_id":"17.0/changes/124","source_hash":"19efd2508ff8388f3d7d9c9845a189c6ccb76da3e48d6daab301e4d1285bce2f","source_url":"/docs/release/17.0/#RELEASE-17-SERVER-APPS","statement_hash":"c66494bd2e04274838c5afdcd3573e9a45de801c0aa76670112c73e8bb956653","text":"允许reindexdb的 --index 并行处理来自不同表的索引（Maxim Orlov, Svetlana Derevyanko, Alexander Korotkov）§","title":"允许reindexdb的 --index 并行处理来自不同表的索引","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["1b49d56d3","24c928ad9","648928c79"],"commit_groups":[["1b49d56d3"],["24c928ad9"],["648928c79"]],"commits":["1b49d56d3","24c928ad9","648928c79"],"cves":[],"db_id":"d7c4b4af13cad8fc21fb707416814193","html":"\u003cp\u003e允许 \u003ca href=\"/docs/17/app-reindexdb.html\" title=\"reindexdb\"\u003ereindexdb\u003c/a\u003e、\u003ca href=\"/docs/17/app-vacuumdb.html\" title=\"vacuumdb\"\u003evacuumdb\u003c/a\u003e 和 \u003ca href=\"/docs/17/app-clusterdb.html\" title=\"clusterdb\"\u003eclusterdb\u003c/a\u003e 在所有匹配模式的数据库中处理对象（Nathan Bossart）\u003ca href=\"https://postgr.es/c/24c928ad9\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/648928c79\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/1b49d56d3\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e新选项 \u003ccode\u003e--all\u003c/code\u003e 控制此行为。\u003c/p\u003e","id":"17.0-9af7f64df979bee6","identity_text":"Allow reindexdb, vacuumdb, and clusterdb to process objects in all databases matching a pattern (Nathan Bossart) The new option --all controls this behavior.","part":"changes","patch_ids":["749a7b012112b5be8b3472d52b0e5295","7f350c546f239bf502c3caa964d420d2","c09c04601275da0c67baf88657973e40"],"related_changes":[],"relations":[],"section":"服务器应用","section_path":["服务器应用"],"source_commits":["1b49d56d3","24c928ad9","648928c79"],"source_entry_id":"17.0/changes/125","source_hash":"5ea98d742f69f17e58536b1bfc7681fad738dba7a69c98c496b46f83a7250514","source_url":"/docs/release/17.0/#RELEASE-17-SERVER-APPS","statement_hash":"5748536b79b3c28a70f0e46452935a4506292db1f62a618b48318f8725ae3f13","text":"允许 reindexdb、vacuumdb 和 clusterdb 在所有匹配模式的数据库中处理对象（Nathan Bossart）§ § § 新选项 --all 控制此行为。","title":"允许 reindexdb、vacuumdb 和 clusterdb 在所有匹配模式的数据库中处理对象","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["8e278b657"],"commit_groups":[["8e278b657"]],"commits":["8e278b657"],"cves":[],"db_id":"15880c76c3e7729f30f021b7f43fcc9a","html":"\u003cp\u003e移除对 \u003cspan\u003eOpenSSL\u003c/span\u003e 1.0.1 的支持（Michael Paquier）\u003ca href=\"https://postgr.es/c/8e278b657\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-5f04cbc23b8851f9","identity_text":"Remove support for OpenSSL 1.0.1 (Michael Paquier)","part":"changes","patch_ids":["a5ad3055fd5c20cd11fdafa89115d124"],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":["8e278b657"],"source_entry_id":"17.0/changes/126","source_hash":"7e44f1fe34b165c7ebe8923f46994be66dd2b06293fa2dd9c4665be35958c0d9","source_url":"/docs/release/17.0/#RELEASE-17-SOURCE-CODE","statement_hash":"7e67783296f70fe16e14d5afa052aa466a00e45ac0785f565c674fdbb98cb79a","text":"移除对 OpenSSL 1.0.1 的支持（Michael Paquier）§","title":"移除对 OpenSSL 1.0.1 的支持","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["284cbaea7","3c44e7d8d"],"commit_groups":[["284cbaea7"],["3c44e7d8d"]],"commits":["284cbaea7","3c44e7d8d"],"cves":[],"db_id":"a135f4fb35c7906e97c207b90bb26ab9","html":"\u003cp\u003e允许测试在 \u003cspan\u003eOpenSSL\u003c/span\u003e \u003cacronym\u003eFIPS\u003c/acronym\u003e 模式下通过（Peter Eisentraut）\u003ca href=\"https://postgr.es/c/284cbaea7\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/3c44e7d8d\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-7a9b019b505f601e","identity_text":"Allow tests to pass in OpenSSL FIPS mode (Peter Eisentraut)","part":"changes","patch_ids":["27a23a56070ade180b93c4102d39aa9b","789709d46dfe5351bc11694318517651"],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":["284cbaea7","3c44e7d8d"],"source_entry_id":"17.0/changes/127","source_hash":"959f6399dda44f54bec76f7817e641068c40725031f832b87b6fa7e8504a0128","source_url":"/docs/release/17.0/#RELEASE-17-SOURCE-CODE","statement_hash":"c3cbba5e48f72814686215398317fdc78d97e033a969893d623bc5ec615958aa","text":"允许测试在 OpenSSL FIPS 模式下通过（Peter Eisentraut）§ §","title":"允许测试在 OpenSSL FIPS 模式下通过","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["41c51f0c6","792752af4"],"commit_groups":[["41c51f0c6"],["792752af4"]],"commits":["41c51f0c6","792752af4"],"cves":[],"db_id":"326ef8392ee61620a3d0ab1e397c477b","html":"\u003cp\u003e使用 \u003cacronym\u003eCPU AVX\u003c/acronym\u003e-512 指令进行位计数（Paul Amonson, Nathan Bossart, Ants Aasma）\u003ca href=\"https://postgr.es/c/792752af4\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/41c51f0c6\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-15b3e73a9cacd640","identity_text":"Use CPU AVX-512 instructions for bit counting (Paul Amonson, Nathan Bossart, Ants Aasma)","part":"changes","patch_ids":["797825bf52ab1ddd6d748e9df6e04632","de087c782c5665286971401f760dcb6f"],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":["41c51f0c6","792752af4"],"source_entry_id":"17.0/changes/128","source_hash":"45cda86246e42712a462a54e5a683e75d514d046e2f6010a20d9ec242a413216","source_url":"/docs/release/17.0/#RELEASE-17-SOURCE-CODE","statement_hash":"2a9647601d42364819fca9d36293b39dd2ddf93995d9e2b4d68b42b379124bdf","text":"使用 CPU AVX-512 指令进行位计数（Paul Amonson, Nathan Bossart, Ants Aasma）§ §","title":"使用 CPU AVX-512 指令进行位计数","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["820b5af73"],"commit_groups":[["820b5af73"]],"commits":["820b5af73"],"cves":[],"db_id":"72eee7416e63a4bcb16849b9e21c657e","html":"\u003cp\u003e要求 \u003cspan\u003e\u003cacronym\u003eLLVM\u003c/acronym\u003e\u003c/span\u003e 版本为 10 或更高（Thomas Munro）\u003ca href=\"https://postgr.es/c/820b5af73\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-21c3d14115014c02","identity_text":"Require LLVM version 10 or later (Thomas Munro)","part":"changes","patch_ids":["baa483078b0978ee35a1076715b8bab0"],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":["820b5af73"],"source_entry_id":"17.0/changes/129","source_hash":"fabeefc089e24f4a3c12c459dab4138165912759268b17a27c98575b1b7952b1","source_url":"/docs/release/17.0/#RELEASE-17-SOURCE-CODE","statement_hash":"bc510a4a245912e1390d02ffb70b8a64616e38b63a8092f3ce6c78293ceac58c","text":"要求 LLVM 版本为 10 或更高（Thomas Munro）§","title":"要求 LLVM 版本为 10 或更高","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["4d14ccd6a"],"commit_groups":[["4d14ccd6a"]],"commits":["4d14ccd6a"],"cves":[],"db_id":"7ea245e9c033fe8b075904f92a913e12","html":"\u003cp\u003e在 64 位 \u003cspan\u003eLoongArch\u003c/span\u003e CPU 上使用原生 \u003cacronym\u003eCRC\u003c/acronym\u003e 指令（Xudong Yang）\u003ca href=\"https://postgr.es/c/4d14ccd6a\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-3ed1b2b031ea0bc6","identity_text":"Use native CRC instructions on 64-bit LoongArch CPUs (Xudong Yang)","part":"changes","patch_ids":["aed8d765ef17f0d03df77dab0ec16518"],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":["4d14ccd6a"],"source_entry_id":"17.0/changes/130","source_hash":"b24d213afc567210c77934ede0a5ef95aaf687bce473cf1813bd9c9c9b1a2a5f","source_url":"/docs/release/17.0/#RELEASE-17-SOURCE-CODE","statement_hash":"ff8157f877083a7f8679d72b455b383d8cb83ecb25761d068c3fc97919ca6eda","text":"在 64 位 LoongArch CPU 上使用原生 CRC 指令（Xudong Yang）§","title":"在 64 位 LoongArch CPU 上使用原生 CRC 指令","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["0b16bb877"],"commit_groups":[["0b16bb877"]],"commits":["0b16bb877"],"cves":[],"db_id":"f4840b20dc32c3b9f047dd82de33efb9","html":"\u003cp\u003e移除对 \u003cspan\u003e\u003cacronym\u003eAIX\u003c/acronym\u003e\u003c/span\u003e 的支持（Heikki Linnakangas）\u003ca href=\"https://postgr.es/c/0b16bb877\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-d0d32394c87a028c","identity_text":"Remove AIX support (Heikki Linnakangas)","part":"changes","patch_ids":["de2c7811e07614defe533d1bf93a3090"],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":["0b16bb877"],"source_entry_id":"17.0/changes/131","source_hash":"5841f180a5041cf50a274e1f9fd698322aafb08ae8fa8da1e59d66844ea73305","source_url":"/docs/release/17.0/#RELEASE-17-SOURCE-CODE","statement_hash":"0e3d50f0888d20c3ac42aba16cf6e299c1b83550abd1fa2f6110c4367a8eb7ac","text":"移除对 AIX 的支持（Heikki Linnakangas）§","title":"移除对 AIX 的支持","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["1301c80b2"],"commit_groups":[["1301c80b2"]],"commits":["1301c80b2"],"cves":[],"db_id":"913c5fefc2c5e537af5898076b56e56d","html":"\u003cp\u003e移除 \u003cspan\u003eMicrosoft Visual Studio\u003c/span\u003e 专用的 \u003cspan\u003ePostgreSQL\u003c/span\u003e 构建选项（Michael Paquier）\u003ca href=\"https://postgr.es/c/1301c80b2\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cspan\u003eMeson\u003c/span\u003e 现在是 \u003cspan\u003eVisual Studio\u003c/span\u003e 构建的唯一可用方法。\u003c/p\u003e","id":"17.0-5f376f1cb263f72c","identity_text":"Remove the Microsoft Visual Studio-specific PostgreSQL build option (Michael Paquier) Meson is now the only available method for Visual Studio builds.","part":"changes","patch_ids":["6e75731134cc82e8f61c2df316928cf7"],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":["1301c80b2"],"source_entry_id":"17.0/changes/132","source_hash":"987f3c37a3e15e3e1b2cb19b584c749b0a70b49ac562e91f45a7c7298f7ae16b","source_url":"/docs/release/17.0/#RELEASE-17-SOURCE-CODE","statement_hash":"a2c8190c49c3b8cb801ae88e65a9613c2c1609d3a9a58ae454c3dd9193be9367","text":"移除 Microsoft Visual Studio 专用的 PostgreSQL 构建选项（Michael Paquier）§ Meson 现在是 Visual Studio 构建的唯一可用方法。","title":"移除 Microsoft Visual Studio 专用的 PostgreSQL 构建选项","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["68a4b58ec","ce0b0fa3e"],"commit_groups":[["68a4b58ec"],["ce0b0fa3e"]],"commits":["68a4b58ec","ce0b0fa3e"],"cves":[],"db_id":"42e9fb2f361ae69f03f41e8114726ed6","html":"\u003cp\u003e移除 configure 选项 \u003ccode\u003e--disable-thread-safety\u003c/code\u003e（Thomas Munro, Heikki Linnakangas）\u003ca href=\"https://postgr.es/c/68a4b58ec\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/ce0b0fa3e\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e我们现在假定所有受支持的平台都具有足够的线程支持。\u003c/p\u003e","id":"17.0-22b1094344f0b77e","identity_text":"Remove configure option --disable-thread-safety (Thomas Munro, Heikki Linnakangas) We now assume all supported platforms have sufficient thread support.","part":"changes","patch_ids":["36537238f32d9a7bb09808780a5910de","50964d12e5d1abbad098eb65bd55c133"],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":["68a4b58ec","ce0b0fa3e"],"source_entry_id":"17.0/changes/133","source_hash":"2c40ba40d696bf2ee743f2efa7d58b56cc5a38cff1611a62d4cfedfa7163904f","source_url":"/docs/release/17.0/#RELEASE-17-SOURCE-CODE","statement_hash":"a7d2a76c0b3c298d869b8d9dbecc0cff3c0985357e98da13117747645d02575a","text":"移除 configure 选项 --disable-thread-safety（Thomas Munro, Heikki Linnakangas）§ § 我们现在假定所有受支持的平台都具有足够的线程支持。","title":"移除 configure 选项 --disable-thread-safety","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["1c1eec0f2"],"commit_groups":[["1c1eec0f2"]],"commits":["1c1eec0f2"],"cves":[],"db_id":"143ea66288ccbf63707e044df80c9ad6","html":"\u003cp\u003e移除 \u003cspan\u003econfigure\u003c/span\u003e 选项 \u003ccode\u003e--with-CC\u003c/code\u003e（Heikki Linnakangas）\u003ca href=\"https://postgr.es/c/1c1eec0f2\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e现在指定编译器的唯一受支持方法是设置 \u003ccode\u003eCC\u003c/code\u003e 环境变量。\u003c/p\u003e","id":"17.0-a51fb3f19f4d14f4","identity_text":"Remove configure option --with-CC (Heikki Linnakangas) Setting the CC environment variable is now the only supported method for specifying the compiler.","part":"changes","patch_ids":["7e98f7d00edb150581c9e82e62d11be0"],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":["1c1eec0f2"],"source_entry_id":"17.0/changes/134","source_hash":"d95dbe422cc4b30443e33ef408727f4dac473726b6a3a6230eb2620223f29622","source_url":"/docs/release/17.0/#RELEASE-17-SOURCE-CODE","statement_hash":"2cb754acc6c28932f79d5bc3d331a21391776e24922e5dacd5d5960d95a1cb33","text":"移除 configure 选项 --with-CC（Heikki Linnakangas）§ 现在指定编译器的唯一受支持方法是设置 CC 环境变量。","title":"移除 configure 选项 --with-CC","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["f0efa5aec"],"commit_groups":[["f0efa5aec"]],"commits":["f0efa5aec"],"cves":[],"db_id":"19d0f5adfeea701c31b8e22525e6fad2","html":"\u003cp\u003e用户定义的数据类型接收函数将不再接收到以空字符终止的数据（David Rowley）\u003ca href=\"https://postgr.es/c/f0efa5aec\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-19b8e105b95e4947","identity_text":"User-defined data type receive functions will no longer receive their data null-terminated (David Rowley)","part":"changes","patch_ids":["6b82f3e7159caf6a3bfa7b3269e4a5d8"],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":["f0efa5aec"],"source_entry_id":"17.0/changes/135","source_hash":"83baab6057f34f99e4db488768cb432760dba78c093f4d1620e620abd2683c28","source_url":"/docs/release/17.0/#RELEASE-17-SOURCE-CODE","statement_hash":"24812cf4b627a7a7f317c84d2e00b69d5d0fd88d2fda6b1a6181d0390567ab8b","text":"用户定义的数据类型接收函数将不再接收到以空字符终止的数据（David Rowley）§","title":"用户定义的数据类型接收函数将不再接收到以空字符终止的数据","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["3311ea86e"],"commit_groups":[["3311ea86e"]],"commits":["3311ea86e"],"cves":[],"db_id":"019541f2e3f2021f9da6a24500d7182b","html":"\u003cp\u003e添加增量式 \u003ccode\u003eJSON\u003c/code\u003e 解析器，以用于超大的 \u003ccode\u003eJSON\u003c/code\u003e 文档（Andrew Dunstan）\u003ca href=\"https://postgr.es/c/3311ea86e\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-e23526721ccb2109","identity_text":"Add incremental JSON parser for use with huge JSON documents (Andrew Dunstan)","part":"changes","patch_ids":["2cbbd6ee4e3a4c628d75f3c25057b54f"],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":["3311ea86e"],"source_entry_id":"17.0/changes/136","source_hash":"5873b1f249baebe7b7426d1b9ee4cb0e4c3bf69aca662d372c98a79072c9131e","source_url":"/docs/release/17.0/#RELEASE-17-SOURCE-CODE","statement_hash":"ddddb8565374e9a832c7ea9a2dc932e14bf0da6c2914474639e77911dd4e7523","text":"添加增量式 JSON 解析器，以用于超大的 JSON 文档（Andrew Dunstan）§","title":"添加增量式 JSON 解析器，以用于超大的 JSON 文档","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["363eb0599"],"commit_groups":[["363eb0599"]],"commits":["363eb0599"],"cves":[],"db_id":"16fe37ee9bc09439954284db0c23d26c","html":"\u003cp\u003e将顶层 \u003ccode\u003eREADME\u003c/code\u003e 文件转换为 \u003cspan\u003eMarkdown\u003c/span\u003e（Nathan Bossart）\u003ca href=\"https://postgr.es/c/363eb0599\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-e372a638516fe0ef","identity_text":"Convert top-level README file to Markdown (Nathan Bossart)","part":"changes","patch_ids":["78c6b6fc4a88360bc43a03406176a1f1"],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":["363eb0599"],"source_entry_id":"17.0/changes/137","source_hash":"097e0892fe4a698341b7504a391033efd56aef053f3e70f9997902cb071eb1d5","source_url":"/docs/release/17.0/#RELEASE-17-SOURCE-CODE","statement_hash":"94273fdf864232478f3e27128fad502df5e5acab604b948733ad710110dae971","text":"将顶层 README 文件转换为 Markdown（Nathan Bossart）§","title":"将顶层 README 文件转换为 Markdown","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["e2b73f4a4"],"commit_groups":[["e2b73f4a4"]],"commits":["e2b73f4a4"],"cves":[],"db_id":"fd4c39a1596258c7e0dd1558e77e4391","html":"\u003cp\u003e移除不再需要的顶层 \u003ccode\u003eINSTALL\u003c/code\u003e 文件（Tom Lane）\u003ca href=\"https://postgr.es/c/e2b73f4a4\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-ac5282e34853d381","identity_text":"Remove no longer needed top-level INSTALL file (Tom Lane)","part":"changes","patch_ids":["b1e4e1b6cf4abd002cee1318af0191b0"],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":["e2b73f4a4"],"source_entry_id":"17.0/changes/138","source_hash":"6166d3146ccb98d090223b85adff0250ef2e889ef1e3b69f19f79119da452725","source_url":"/docs/release/17.0/#RELEASE-17-SOURCE-CODE","statement_hash":"a43e44e9c5e60b1187431df61de5c9dfae8e42b272e82cf7e0ac3786de2ec5e3","text":"移除不再需要的顶层 INSTALL 文件（Tom Lane）§","title":"移除不再需要的顶层 INSTALL 文件","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["721856ff2"],"commit_groups":[["721856ff2"]],"commits":["721856ff2"],"cves":[],"db_id":"044abf4589a4c75e032d01967bfeb006","html":"\u003cp\u003e移除 \u003cspan\u003emake\u003c/span\u003e 的 \u003ccode\u003edistprep\u003c/code\u003e 选项（Peter Eisentraut）\u003ca href=\"https://postgr.es/c/721856ff2\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-f9497f0aa345abfe","identity_text":"Remove make's distprep option (Peter Eisentraut)","part":"changes","patch_ids":["a2127535e57564bc451f6f84f53c5799"],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":["721856ff2"],"source_entry_id":"17.0/changes/139","source_hash":"e279dd987a80bb20f15a3e6f3c37a0ff8fc1a65148153b85ae5303def96a1663","source_url":"/docs/release/17.0/#RELEASE-17-SOURCE-CODE","statement_hash":"b660c155b2c6b26c23d07d60f5eab3d2829df09314527cb5f6509312fa611c96","text":"移除 make 的 distprep 选项（Peter Eisentraut）§","title":"移除 make 的 distprep 选项","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["79b03dbb3"],"commit_groups":[["79b03dbb3"]],"commits":["79b03dbb3"],"cves":[],"db_id":"b13e641ad6d53b97d02e6d3d3b07c68f","html":"\u003cp\u003e为 \u003cspan\u003emake\u003c/span\u003e 添加对 \u003cspan\u003eAndroid\u003c/span\u003e 共享库的支持（Peter Eisentraut）\u003ca href=\"https://postgr.es/c/79b03dbb3\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-7852b5eb45e0f709","identity_text":"Add make support for Android shared libraries (Peter Eisentraut)","part":"changes","patch_ids":["fa62aee2e0aab2024628c6430f6233f8"],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":["79b03dbb3"],"source_entry_id":"17.0/changes/140","source_hash":"c3cdbab64bcba9765ee387b35484548fd70f7dde0b8554a2c772ff1a542f4c93","source_url":"/docs/release/17.0/#RELEASE-17-SOURCE-CODE","statement_hash":"b608dc60bda89d6268229b9def92c090148bdbeb107de5d8b0b702e03115530c","text":"为 make 添加对 Android 共享库的支持（Peter Eisentraut）§","title":"为 make 添加对 Android 共享库的支持","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["37b369dc6","bb93640a6","d86d20f0b","f587338de"],"commit_groups":[["37b369dc6"],["bb93640a6"],["d86d20f0b"],["f587338de"]],"commits":["37b369dc6","bb93640a6","d86d20f0b","f587338de"],"cves":[],"db_id":"e75a9a23e2348482eff198030b472f0e","html":"\u003cp\u003e添加后端对注入点的支持（Michael Paquier）\u003ca href=\"https://postgr.es/c/d86d20f0b\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/37b369dc6\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/f587338de\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/bb93640a6\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这用于服务器调试，并且必须在服务器编译时启用。\u003c/p\u003e","id":"17.0-abace7ae3098409d","identity_text":"Add backend support for injection points (Michael Paquier) This is used for server debugging and they must be enabled at server compile time.","part":"changes","patch_ids":["0873e7b8344960a2aee60a48bee2194e","4796ea611cbe705f67adb3528e0f5b11","caa959fbfcefd2de2cb9e4dcf8981841","f55703cb1ff5c35f0cd1165772407317"],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":["37b369dc6","bb93640a6","d86d20f0b","f587338de"],"source_entry_id":"17.0/changes/141","source_hash":"d73fb629fc7f4b2ed93b13e455a0433f40e2386e2790224bfa3043abec807ac4","source_url":"/docs/release/17.0/#RELEASE-17-SOURCE-CODE","statement_hash":"d5d0072341b44815f49a413e883adc199119d202250d83568629a792d6b2e24e","text":"添加后端对注入点的支持（Michael Paquier）§ § § § 这用于服务器调试，并且必须在服务器编译时启用。","title":"添加后端对注入点的支持","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["8b2bcf3f2"],"commit_groups":[["8b2bcf3f2"]],"commits":["8b2bcf3f2"],"cves":[],"db_id":"c5316f39fd5729475b6bb8ac9bcb82cd","html":"\u003cp\u003e添加动态共享内存注册表（Nathan Bossart）\u003ca href=\"https://postgr.es/c/8b2bcf3f2\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这使得那些未在启动时初始化的共享库也能够协调对动态共享内存的访问。\u003c/p\u003e","id":"17.0-464339e819ae6a08","identity_text":"Add dynamic shared memory registry (Nathan Bossart) This allows shared libraries which are not initialized at startup to coordinate dynamic shared memory access.","part":"changes","patch_ids":["e00bd8d7f257fd3730d3a711e4315f46"],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":["8b2bcf3f2"],"source_entry_id":"17.0/changes/142","source_hash":"7973e9c417d977667928cc28fdc2120634a2839d8f60c586af619727b1a67281","source_url":"/docs/release/17.0/#RELEASE-17-SOURCE-CODE","statement_hash":"5fa223044d973d2145d53255450dcc74827b5e1c458ad518195e0a6a328090c5","text":"添加动态共享内存注册表（Nathan Bossart）§ 这使得那些未在启动时初始化的共享库也能够协调对动态共享内存的访问。","title":"添加动态共享内存注册表","variants":[],"version":"17.0"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["2a217c371"],"commit_groups":[["2a217c371"]],"commits":["2a217c371"],"cves":[],"db_id":"96896e827fdb47d395edc2e3b8c4a934","html":"\u003cp\u003e修复 \u003ccode\u003eemit_log_hook\u003c/code\u003e，使其对同一查询使用与其他日志记录相同的时间值（Kambam Vinay, Michael Paquier）\u003ca href=\"https://postgr.es/c/2a217c371\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-52c7a0c027abfc95","identity_text":"Fix emit_log_hook to use the same time value as other log records for the same query (Kambam Vinay, Michael Paquier)","part":"changes","patch_ids":["82c0b254fcf4409e51d539c22a6b8cf2"],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":["2a217c371"],"source_entry_id":"17.0/changes/143","source_hash":"f42bef9789ddc4e7eb837c73c4b61fa5b8f1841fad1f52ece9b6fc74944327ad","source_url":"/docs/release/17.0/#RELEASE-17-SOURCE-CODE","statement_hash":"882e8a0f6fac1a739aea9a40ccee25d6d89c28cf47b64f68de68183a8bfe3fbd","text":"修复 emit_log_hook，使其对同一查询使用与其他日志记录相同的时间值（Kambam Vinay, Michael Paquier）§","title":"修复 emit_log_hook，使其对同一查询使用与其他日志记录相同的时间值","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["7014c9a4b"],"commit_groups":[["7014c9a4b"]],"commits":["7014c9a4b"],"cves":[],"db_id":"671cfd4d77d6dc423a470d85daeb1533","html":"\u003cp\u003e改进关于使用 \u003ccode\u003ejsonpath\u003c/code\u003e 进行谓词检查的文档（David Wheeler）\u003ca href=\"https://postgr.es/c/7014c9a4b\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-2216de92719f80f3","identity_text":"Improve documentation for using jsonpath for predicate checks (David Wheeler)","part":"changes","patch_ids":["378142bba840712753071ce7149f892c"],"related_changes":[],"relations":[],"section":"源代码","section_path":["源代码"],"source_commits":["7014c9a4b"],"source_entry_id":"17.0/changes/144","source_hash":"917d48df4a3e2aaa0eb690c94f5195f2c5c35b9d75b35f56bf63522433584aa4","source_url":"/docs/release/17.0/#RELEASE-17-SOURCE-CODE","statement_hash":"bd74d3f3a12cdf95c6426e5e24eceb582d94b3ab8e7d610f388b821b476efb1c","text":"改进关于使用 jsonpath 进行谓词检查的文档（David Wheeler）§","title":"改进关于使用 jsonpath 进行谓词检查的文档","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["9e9931d2b"],"commit_groups":[["9e9931d2b"]],"commits":["9e9931d2b"],"cves":[],"db_id":"602370a8e6f22b00d8b169c31ac92c51","html":"\u003cp\u003e允许将带有非连接限制条件的连接下推到外部服务器和自定义扫描中（Richard Guo, Etsuro Fujita）\u003ca href=\"https://postgr.es/c/9e9931d2b\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e外部数据包装器和自定义扫描需要修改才能处理这些情况。\u003c/p\u003e","id":"17.0-1d07545fbc415c94","identity_text":"Allow joins with non-join qualifications to be pushed down to foreign servers and custom scans (Richard Guo, Etsuro Fujita) Foreign data wrappers and custom scans will need to be modified to handle these cases.","part":"changes","patch_ids":["fa2badd8ad71f4912f69362e47f47050"],"related_changes":[],"relations":[],"section":"附加模块","section_path":["附加模块"],"source_commits":["9e9931d2b"],"source_entry_id":"17.0/changes/145","source_hash":"90b0331f7787b3811b14cca6d244c14bf435769131dd5f970a146404d370defa","source_url":"/docs/release/17.0/#RELEASE-17-MODULES","statement_hash":"532e397bc4b9ae95eb4b1cac0ae38f563f22359b43b0ed380e7d93423bfc8f47","text":"允许将带有非连接限制条件的连接下推到外部服务器和自定义扫描中（Richard Guo, Etsuro Fujita）§ 外部数据包装器和自定义扫描需要修改才能处理这些情况。","title":"允许将带有非连接限制条件的连接下推到外部服务器和自定义扫描中","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["824dbea3e"],"commit_groups":[["824dbea3e"]],"commits":["824dbea3e"],"cves":[],"db_id":"7a3f28e9806d19d8460db56a25188a6b","html":"\u003cp\u003e允许将 \u003ccode\u003eEXISTS\u003c/code\u003e 和 \u003ccode\u003eIN\u003c/code\u003e 子查询下推到\u003ca href=\"/docs/17/postgres-fdw.html\" title=\"F.36. postgres_fdw — 访问存储在外部 PostgreSQL 服务器中的数据\"\u003epostgres_fdw\u003c/a\u003e外部服务器（Alexander Pyhalov）\u003ca href=\"https://postgr.es/c/824dbea3e\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-35dea19dd423d972","identity_text":"Allow pushdown of EXISTS and IN subqueries to postgres-fdw foreign servers (Alexander Pyhalov)","part":"changes","patch_ids":["4c6c6dbde603026434419ffb07dff549"],"related_changes":[],"relations":[],"section":"附加模块","section_path":["附加模块"],"source_commits":["824dbea3e"],"source_entry_id":"17.0/changes/146","source_hash":"5ec6b1f8e99d7958930bbbae13f623d3b269b51c64e026a231117b812f4104df","source_url":"/docs/release/17.0/#RELEASE-17-MODULES","statement_hash":"fd127259ef3624c6e64b5ed145e3b39227521cd4cfcdaf0d5a755959571bb809","text":"允许将 EXISTS 和 IN 子查询下推到postgres_fdw外部服务器（Alexander Pyhalov）§","title":"允许将 EXISTS 和 IN 子查询下推到postgres_fdw外部服务器","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["cac169d68","f7f694b21"],"commit_groups":[["cac169d68"],["f7f694b21"]],"commits":["cac169d68","f7f694b21"],"cves":[],"db_id":"76f362f84f6f7f42131c7dc3660710f3","html":"\u003cp\u003e提高默认的外部数据包装器元组代价（David Rowley, Umair Shahid）\u003ca href=\"https://postgr.es/c/cac169d68\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/f7f694b21\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e该值由优化器使用。\u003c/p\u003e","id":"17.0-34b1727d98ec1f24","identity_text":"Increase the default foreign data wrapper tuple cost (David Rowley, Umair Shahid) This value is used by the optimizer.","part":"changes","patch_ids":["11934dd9267f219b5187d05144d80710","e0d966edc0bfb9957736dd9b41557265"],"related_changes":[],"relations":[],"section":"附加模块","section_path":["附加模块"],"source_commits":["cac169d68","f7f694b21"],"source_entry_id":"17.0/changes/147","source_hash":"b72bdd8aa977a12b63e5763b222efdebb7baabb4f926a57d2e94ff919456bda8","source_url":"/docs/release/17.0/#RELEASE-17-MODULES","statement_hash":"924c645b841c23c66da984f6da1bc2438b270e1c903201191ef9958088fe599d","text":"提高默认的外部数据包装器元组代价（David Rowley, Umair Shahid）§ § 该值由优化器使用。","title":"提高默认的外部数据包装器元组代价","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["d3c5f37dd"],"commit_groups":[["d3c5f37dd"]],"commits":["d3c5f37dd"],"cves":[],"db_id":"0e31dead73a9f8e498071f9525ac49a6","html":"\u003cp\u003e允许中断\u003ca href=\"/docs/17/dblink.html\" title=\"F.11. dblink — 连接到其他 PostgreSQL 数据库\"\u003e\u003cspan\u003edblink\u003c/span\u003e\u003c/a\u003e的数据库操作（Noah Misch）\u003ca href=\"https://postgr.es/c/d3c5f37dd\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-c135726fca211e84","identity_text":"Allow dblink database operations to be interrupted (Noah Misch)","part":"changes","patch_ids":["2f9e7d71050455b05ec5e7c18af39bcc"],"related_changes":[],"relations":[],"section":"附加模块","section_path":["附加模块"],"source_commits":["d3c5f37dd"],"source_entry_id":"17.0/changes/148","source_hash":"14050614fc744646952c5710d1d85b92f8421c7c466422b8fa867ba67cfeabbc","source_url":"/docs/release/17.0/#RELEASE-17-MODULES","statement_hash":"13ea52e38638c9d65409e2d059873b618bfad8b134d7c35409391c6eed91fb0e","text":"允许中断dblink的数据库操作（Noah Misch）§","title":"允许中断dblink的数据库操作","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["485f0aa85"],"commit_groups":[["485f0aa85"]],"commits":["485f0aa85"],"cves":[],"db_id":"0fcd097972303bafdda7763698cf849d","html":"\u003cp\u003e允许在 \u003cspan\u003e\u003ca href=\"/docs/17/ltree.html\" title=\"F.22. ltree — 层次树状数据类型\"\u003eltree\u003c/a\u003e\u003c/span\u003e 列上创建 hash 索引（Tommy Pavlicek）\u003ca href=\"https://postgr.es/c/485f0aa85\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这也使得能够在 \u003cspan\u003eltree\u003c/span\u003e 列上进行哈希连接和 hash 聚合。\u003c/p\u003e","id":"17.0-b42a568f683128e5","identity_text":"Allow the creation of hash indexes on ltree columns (Tommy Pavlicek) This also enables hash join and hash aggregation on ltree columns.","part":"changes","patch_ids":["9a2b84416f651f19ea2147bbbe22ed42"],"related_changes":[],"relations":[],"section":"附加模块","section_path":["附加模块"],"source_commits":["485f0aa85"],"source_entry_id":"17.0/changes/149","source_hash":"90fb4a30d48d077a56d56afbc21845e659a494f255b6f74487cd4ec9a5f648ed","source_url":"/docs/release/17.0/#RELEASE-17-MODULES","statement_hash":"2ff06487c7f977a34b9e12883d8baa57125e4609fab6ad7cecd0d93fde55cb3b","text":"允许在 ltree 列上创建 hash 索引（Tommy Pavlicek）§ 这也使得能够在 ltree 列上进行哈希连接和 hash 聚合。","title":"允许在 ltree 列上创建 hash 索引","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["59f47fb98"],"commit_groups":[["59f47fb98"]],"commits":["59f47fb98"],"cves":[],"db_id":"931e088d46958c6478eb7d2f30c51887","html":"\u003cp\u003e允许 \u003cspan\u003e\u003ca href=\"/docs/17/unaccent.html\" title=\"F.46. unaccent — 去除变音符号的文本检索词典\"\u003eunaccent\u003c/a\u003e\u003c/span\u003e 的字符转换规则包含空白字符和引号（Michael Paquier）\u003ca href=\"https://postgr.es/c/59f47fb98\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eunaccent.rules\u003c/code\u003e 文件的语法已更改。\u003c/p\u003e","id":"17.0-daa430d9f1f9f4c9","identity_text":"Allow unaccent character translation rules to contain whitespace and quotes (Michael Paquier) The syntax for the unaccent.rules file has changed.","part":"changes","patch_ids":["bd31157f2a7afdf08a60d3946fd8d008"],"related_changes":[],"relations":[],"section":"附加模块","section_path":["附加模块"],"source_commits":["59f47fb98"],"source_entry_id":"17.0/changes/150","source_hash":"43e706578a3b5a9be257ce12defe01320b816965750a56a6766aaa962c2e4377","source_url":"/docs/release/17.0/#RELEASE-17-MODULES","statement_hash":"c3082f051a4a8eeb36497acdbe5ba3a49fe0701fd780b4f9fccba48025a091af","text":"允许 unaccent 的字符转换规则包含空白字符和引号（Michael Paquier）§ unaccent.rules 文件的语法已更改。","title":"允许 unaccent 的字符转换规则包含空白字符和引号","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["5ae208720"],"commit_groups":[["5ae208720"]],"commits":["5ae208720"],"cves":[],"db_id":"2eddc8ab5f67ad39560cadf774fa268a","html":"\u003cp\u003e允许 \u003cspan\u003e\u003ca href=\"/docs/17/amcheck.html\" title=\"F.1. amcheck — 用于验证表和索引一致性的工具\"\u003eamcheck\u003c/a\u003e\u003c/span\u003e 使用新选项 \u003ccode\u003e--checkunique\u003c/code\u003e 检查唯一约束违反（Anastasia Lubennikova, Pavel Borisov, Maxim Orlov）\u003ca href=\"https://postgr.es/c/5ae208720\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-8920b48ede92f031","identity_text":"Allow amcheck to check for unique constraint violations using new option --checkunique (Anastasia Lubennikova, Pavel Borisov, Maxim Orlov)","part":"changes","patch_ids":["5050adf66866d77bc15d0a59087af2f3"],"related_changes":[],"relations":[],"section":"附加模块","section_path":["附加模块"],"source_commits":["5ae208720"],"source_entry_id":"17.0/changes/151","source_hash":"cdfbcd3008f1d07349161bbaf954fe0e6bfec5792669bee987b15382321f3744","source_url":"/docs/release/17.0/#RELEASE-17-MODULES","statement_hash":"c86fe5631c56eb258fd536f2567f63d1ecd4b20c8865fd419789aba61f6f66c1","text":"允许 amcheck 使用新选项 --checkunique 检查唯一约束违反（Anastasia Lubennikova, Pavel Borisov, Maxim Orlov）§","title":"允许 amcheck 使用新选项 --checkunique 检查唯一约束违反","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["3c551ebed"],"commit_groups":[["3c551ebed"]],"commits":["3c551ebed"],"cves":[],"db_id":"d4df432082891f8eedc5722ec92c4cf3","html":"\u003cp\u003e允许 \u003cspan\u003e\u003ca href=\"/docs/17/citext.html\" title=\"F.9. citext — 大小写不敏感的字符串类型\"\u003ecitext\u003c/a\u003e\u003c/span\u003e 的测试在 OpenSSL \u003cacronym\u003eFIPS\u003c/acronym\u003e 模式下通过（Peter Eisentraut）\u003ca href=\"https://postgr.es/c/3c551ebed\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-f2405aff84dc3798","identity_text":"Allow citext tests to pass in OpenSSL FIPS mode (Peter Eisentraut)","part":"changes","patch_ids":["e7858ef4fe4eec42ceaeb0d73e09397b"],"related_changes":[],"relations":[],"section":"附加模块","section_path":["附加模块"],"source_commits":["3c551ebed"],"source_entry_id":"17.0/changes/152","source_hash":"ae7e08b05987732a2bfeccd8963683628531014ec419a7d0016723c8b800edad","source_url":"/docs/release/17.0/#RELEASE-17-MODULES","statement_hash":"633b209b121df3f7a1b3866423fe949c44297e36eaa76eb7a421268ee00950bf","text":"允许 citext 的测试在 OpenSSL FIPS 模式下通过（Peter Eisentraut）§","title":"允许 citext 的测试在 OpenSSL FIPS 模式下通过","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["795592865"],"commit_groups":[["795592865"]],"commits":["795592865"],"cves":[],"db_id":"76a6f403888ab03b534bce8c3f9d7249","html":"\u003cp\u003e允许 \u003cspan\u003e\u003ca href=\"/docs/17/pgcrypto.html\" title=\"F.26. pgcrypto — 密码学函数\"\u003epgcrypto\u003c/a\u003e\u003c/span\u003e 的测试在 OpenSSL \u003cacronym\u003eFIPS\u003c/acronym\u003e 模式下通过（Peter Eisentraut）\u003ca href=\"https://postgr.es/c/795592865\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-9a07120b177f57e1","identity_text":"Allow pgcrypto tests to pass in OpenSSL FIPS mode (Peter Eisentraut)","part":"changes","patch_ids":["08761b8e5c59750f736a18305612fd1c"],"related_changes":[],"relations":[],"section":"附加模块","section_path":["附加模块"],"source_commits":["795592865"],"source_entry_id":"17.0/changes/153","source_hash":"bfa7242196ca8f07fddc2d907ac32183f7e1924f168cea723e5030b91bf0cb01","source_url":"/docs/release/17.0/#RELEASE-17-MODULES","statement_hash":"f531e471fa3af9c32a7d13871ca045c429ac9b29a2b80f11eebee0c789094d00","text":"允许 pgcrypto 的测试在 OpenSSL FIPS 模式下通过（Peter Eisentraut）§","title":"允许 pgcrypto 的测试在 OpenSSL FIPS 模式下通过","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["75680c3d8"],"commit_groups":[["75680c3d8"]],"commits":["75680c3d8"],"cves":[],"db_id":"85f03f7e098e7244c189f0de6da4683f","html":"\u003cp\u003e移除一些未使用的 \u003ca href=\"/docs/17/spi.html\" title=\"第 45 章 服务器编程接口\"\u003e\u003cacronym\u003eSPI\u003c/acronym\u003e\u003c/a\u003e 宏（Bharath Rupireddy）\u003ca href=\"https://postgr.es/c/75680c3d8\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-400b3d20a9f78618","identity_text":"Remove some unused SPI macros (Bharath Rupireddy)","part":"changes","patch_ids":["8eb02210c953013409d5689d896ae0e9"],"related_changes":[],"relations":[],"section":"附加模块","section_path":["附加模块"],"source_commits":["75680c3d8"],"source_entry_id":"17.0/changes/154","source_hash":"32667365507ac2e744afee032cf8e3036c1d483ae7d3da7b1b9b9d4c2c0f8083","source_url":"/docs/release/17.0/#RELEASE-17-MODULES","statement_hash":"f3d1a646d47946f1e78824bc03ada29979b7403151fa61c3ea5272d498053d75","text":"移除一些未使用的 SPI 宏（Bharath Rupireddy）§","title":"移除一些未使用的 SPI 宏","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["2b5154bea"],"commit_groups":[["2b5154bea"]],"commits":["2b5154bea"],"cves":[],"db_id":"f77fab23da18005f8e03d14d7c6c5b7a","html":"\u003cp\u003e允许 \u003ca href=\"/docs/17/sql-alteroperator.html\" title=\"ALTER OPERATOR\"\u003e\u003ccode\u003eALTER OPERATOR\u003c/code\u003e\u003c/a\u003e 设置更多优化属性（Tommy Pavlicek）\u003ca href=\"https://postgr.es/c/2b5154bea\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这对扩展很有用。\u003c/p\u003e","id":"17.0-17bbfb671e78c3ef","identity_text":"Allow ALTER OPERATOR to set more optimization attributes (Tommy Pavlicek) This is useful for extensions.","part":"changes","patch_ids":["83b25dff27e72215ff6388400399430e"],"related_changes":[],"relations":[],"section":"附加模块","section_path":["附加模块"],"source_commits":["2b5154bea"],"source_entry_id":"17.0/changes/155","source_hash":"147eff46f4e56400f3e7013a5fcd6170a1e254db439cb2e6040367f7767d5105","source_url":"/docs/release/17.0/#RELEASE-17-MODULES","statement_hash":"5369619e8fafe7aab9c1a1d35d794b1c2d2f6e8a6f88922a3229d202113d0c5f","text":"允许 ALTER OPERATOR 设置更多优化属性（Tommy Pavlicek）§ 这对扩展很有用。","title":"允许 ALTER OPERATOR 设置更多优化属性","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["c789f0f6c","c8e318b1b","c9af05465","d61f2538a"],"commit_groups":[["c789f0f6c"],["c8e318b1b"],["c9af05465"],["d61f2538a"]],"commits":["c789f0f6c","c8e318b1b","c9af05465","d61f2538a"],"cves":[],"db_id":"d63e44947b60988f27614175b5661fa5","html":"\u003cp\u003e允许扩展定义\u003ca href=\"/docs/17/xfunc-c.html#XFUNC-ADDIN-WAIT-EVENTS\" title=\"36.10.12. 自定义等待事件\"\u003e自定义等待事件\u003c/a\u003e（Masahiro Ikeda）\u003ca href=\"https://postgr.es/c/c9af05465\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/c8e318b1b\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/d61f2538a\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/c789f0f6c\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e已为 \u003cspan\u003e\u003ca href=\"/docs/17/postgres-fdw.html\" title=\"F.36. postgres_fdw — 访问存储在外部 PostgreSQL 服务器中的数据\"\u003epostgres_fdw\u003c/a\u003e\u003c/span\u003e 和 \u003cspan\u003e\u003ca href=\"/docs/17/dblink.html\" title=\"F.11. dblink — 连接到其他 PostgreSQL 数据库\"\u003edblink\u003c/a\u003e\u003c/span\u003e 添加自定义等待事件。\u003c/p\u003e","id":"17.0-7c44dc6fa66788c5","identity_text":"Allow extensions to define custom wait events (Masahiro Ikeda) Custom wait events have been added to postgres-fdw and dblink .","part":"changes","patch_ids":["551282438ee8bf65b5ce0ff14356c112","685609f4c41ca3f1d73cec33965d58de","c3c2943815691b7f043da5e16bf4734b","e8405f8c4ac1936e911a805cbc0c70d9"],"related_changes":[],"relations":[],"section":"附加模块","section_path":["附加模块"],"source_commits":["c789f0f6c","c8e318b1b","c9af05465","d61f2538a"],"source_entry_id":"17.0/changes/156","source_hash":"3e18bb054099b012337f229bfd16abbbe7cd8ac7aa3e1f71d01fd0b4a9369325","source_url":"/docs/release/17.0/#RELEASE-17-MODULES","statement_hash":"a8ce5486d4288a9668f620699027d38aab125e45c30eef32f07c3765898aaf7e","text":"允许扩展定义自定义等待事件（Masahiro Ikeda）§ § § § 已为 postgres_fdw 和 dblink 添加自定义等待事件。","title":"允许扩展定义自定义等待事件","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["13453eedd"],"commit_groups":[["13453eedd"]],"commits":["13453eedd"],"cves":[],"db_id":"61ff3b352b52e9e18577a69aead34ffe","html":"\u003cp\u003e添加 \u003cspan\u003e\u003ca href=\"/docs/17/pgbuffercache.html\" title=\"F.25. pg_buffercache — 检查 PostgreSQL 缓冲区缓存状态\"\u003epg_buffercache\u003c/a\u003e\u003c/span\u003e 函数 \u003ccode\u003epg_buffercache_evict()\u003c/code\u003e，以允许逐出共享缓冲区（Palak Chaturvedi, Thomas Munro）\u003ca href=\"https://postgr.es/c/13453eedd\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这对测试很有用。\u003c/p\u003e","id":"17.0-00fe19218934a128","identity_text":"Add pgbuffercache function pg_buffercache_evict() to allow shared buffer eviction (Palak Chaturvedi, Thomas Munro) This is useful for testing.","part":"changes","patch_ids":["843c758478199eec5fc56a1397918d2f"],"related_changes":[],"relations":[],"section":"附加模块","section_path":["附加模块"],"source_commits":["13453eedd"],"source_entry_id":"17.0/changes/157","source_hash":"25fb5ba59857633a6ef736bcfdd9e285cb3152201b9b8d65bf8306e2092aad24","source_url":"/docs/release/17.0/#RELEASE-17-MODULES","statement_hash":"5e43907c0ac2702df89595e19c2322444d4bf17b01e71c309f06b9aaf0ae3785","text":"添加 pg_buffercache 函数 pg_buffercache_evict()，以允许逐出共享缓冲区（Palak Chaturvedi, Thomas Munro）§ 这对测试很有用。","title":"添加 pg_buffercache 函数 pg_buffercache_evict()，以允许逐出共享缓冲区","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["11c34b342"],"commit_groups":[["11c34b342"]],"commits":["11c34b342"],"cves":[],"db_id":"829435fcd9a5204bcfac577c982e3469","html":"\u003cp\u003e将 \u003cspan\u003epg_stat_statements\u003c/span\u003e 中 \u003ca href=\"/docs/17/sql-call.html\" title=\"CALL\"\u003e\u003ccode\u003eCALL\u003c/code\u003e\u003c/a\u003e 的参数替换为占位符（Sami Imseih）\u003ca href=\"https://postgr.es/c/11c34b342\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-429b01a8f50d3937","identity_text":"Replace CALL parameters in pg_stat_statements with placeholders (Sami Imseih)","part":"changes","patch_ids":["87f5e7d8ff2e863ba43e78ee25116ca8"],"related_changes":[],"relations":[],"section":"附加模块 / pg_stat_statements","section_path":["附加模块","pg_stat_statements"],"source_commits":["11c34b342"],"source_entry_id":"17.0/changes/158","source_hash":"90c50c720ef38c7ba0b62ef3aedb2e049a0351d05cee703b97d5942d5f84fb82","source_url":"/docs/release/17.0/#RELEASE-17-PGSTATSTATEMENTS","statement_hash":"cc9275113678c3de5e0d531bb7a7a3e8bd0eb99035fef99019d8ced640b7bbc1","text":"将 pg_stat_statements 中 CALL 的参数替换为占位符（Sami Imseih）§","title":"将 pg_stat_statements 中 CALL 的参数替换为占位符","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["31de7e60d"],"commit_groups":[["31de7e60d"]],"commits":["31de7e60d"],"cves":[],"db_id":"2a21b91a16c60f8e844182a824561a87","html":"\u003cp\u003e将存储在 \u003ccode\u003epg_stat_statements\u003c/code\u003e 中的保存点名称替换为占位符（Greg Sabino Mullane）\u003ca href=\"https://postgr.es/c/31de7e60d\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这会大幅减少记录 \u003ca href=\"/docs/17/sql-savepoint.html\" title=\"SAVEPOINT\"\u003e\u003ccode\u003eSAVEPOINT\u003c/code\u003e\u003c/a\u003e、\u003ca href=\"/docs/17/sql-release-savepoint.html\" title=\"RELEASE SAVEPOINT\"\u003e\u003ccode\u003eRELEASE SAVEPOINT\u003c/code\u003e\u003c/a\u003e 和 \u003ca href=\"/docs/17/sql-rollback-to.html\" title=\"ROLLBACK TO SAVEPOINT\"\u003e\u003ccode\u003eROLLBACK TO SAVEPOINT\u003c/code\u003e\u003c/a\u003e 命令所需的条目数量。\u003c/p\u003e","id":"17.0-7b19fbc72a1eca37","identity_text":"Replace savepoint names stored in pg_stat_statements with placeholders (Greg Sabino Mullane) This greatly reduces the number of entries needed to record SAVEPOINT, RELEASE SAVEPOINT, and ROLLBACK TO SAVEPOINT commands.","part":"changes","patch_ids":["e60205f9422d47db4fe5f9b3f589b3f2"],"related_changes":[],"relations":[],"section":"附加模块 / pg_stat_statements","section_path":["附加模块","pg_stat_statements"],"source_commits":["31de7e60d"],"source_entry_id":"17.0/changes/159","source_hash":"c50057061161192a2379d4bfbff725627b34cd605c895a85c386ec953ee4420f","source_url":"/docs/release/17.0/#RELEASE-17-PGSTATSTATEMENTS","statement_hash":"bd64485b74b9e153addf621c9eba9c447fbc0b45f5bbe26fab1e255398ea8edd","text":"将存储在 pg_stat_statements 中的保存点名称替换为占位符（Greg Sabino Mullane）§ 这会大幅减少记录 SAVEPOINT、RELEASE SAVEPOINT 和 ROLLBACK TO SAVEPOINT 命令所需的条目数量。","title":"将存储在 pg_stat_statements 中的保存点名称替换为占位符","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["638d42a3c"],"commit_groups":[["638d42a3c"]],"commits":["638d42a3c"],"cves":[],"db_id":"b33f56a77ff25930b3040bfc942613b5","html":"\u003cp\u003e将存储在 \u003ccode\u003epg_stat_statements\u003c/code\u003e 中的两阶段提交 \u003cacronym\u003eGID\u003c/acronym\u003e 替换为占位符（Michael Paquier）\u003ca href=\"https://postgr.es/c/638d42a3c\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这会大幅减少记录 \u003ca href=\"/docs/17/sql-prepare-transaction.html\" title=\"PREPARE TRANSACTION\"\u003e\u003ccode\u003ePREPARE TRANSACTION\u003c/code\u003e\u003c/a\u003e、\u003ca href=\"/docs/17/sql-commit-prepared.html\" title=\"COMMIT PREPARED\"\u003e\u003ccode\u003eCOMMIT PREPARED\u003c/code\u003e\u003c/a\u003e 和 \u003ca href=\"/docs/17/sql-rollback-prepared.html\" title=\"ROLLBACK PREPARED\"\u003e\u003ccode\u003eROLLBACK PREPARED\u003c/code\u003e\u003c/a\u003e 所需的条目数量。\u003c/p\u003e","id":"17.0-d2115aec8d497c4a","identity_text":"Replace the two-phase commit GIDs stored in pg_stat_statements with placeholders (Michael Paquier) This greatly reduces the number of entries needed to record PREPARE TRANSACTION, COMMIT PREPARED, and ROLLBACK PREPARED.","part":"changes","patch_ids":["57b4c7be3c57b33edc95595f13341b10"],"related_changes":[],"relations":[],"section":"附加模块 / pg_stat_statements","section_path":["附加模块","pg_stat_statements"],"source_commits":["638d42a3c"],"source_entry_id":"17.0/changes/160","source_hash":"6678359f9464015d398365b004a42f49431b6266264ad35b6ed6fc67b612a7e1","source_url":"/docs/release/17.0/#RELEASE-17-PGSTATSTATEMENTS","statement_hash":"9fa3b83bd74b30a68b6780fde124f414b7aee39d0beb27daa6a9bde01041969f","text":"将存储在 pg_stat_statements 中的两阶段提交 GID 替换为占位符（Michael Paquier）§ 这会大幅减少记录 PREPARE TRANSACTION、COMMIT PREPARED 和 ROLLBACK PREPARED 所需的条目数量。","title":"将存储在 pg_stat_statements 中的两阶段提交 GID 替换为占位符","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["bb45156f3"],"commit_groups":[["bb45156f3"]],"commits":["bb45156f3"],"cves":[],"db_id":"5951b4d43885e4df40c6caf1c30a6ea4","html":"\u003cp\u003e在 \u003ccode\u003epg_stat_statements\u003c/code\u003e 中跟踪 \u003ca href=\"/docs/17/sql-deallocate.html\" title=\"DEALLOCATE\"\u003e\u003ccode\u003eDEALLOCATE\u003c/code\u003e\u003c/a\u003e（Dagfinn Ilmari Mannsåker, Michael Paquier）\u003ca href=\"https://postgr.es/c/bb45156f3\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eDEALLOCATE\u003c/code\u003e 名称在 \u003ccode\u003epg_stat_statements\u003c/code\u003e 中存储为占位符。\u003c/p\u003e","id":"17.0-4bb3e59515088f2f","identity_text":"Track DEALLOCATE in pg_stat_statements (Dagfinn Ilmari Mannsåker, Michael Paquier) DEALLOCATE names are stored in pg_stat_statements as placeholders.","part":"changes","patch_ids":["056d4a0cbce0e0223cbd0767af1dda9e"],"related_changes":[],"relations":[],"section":"附加模块 / pg_stat_statements","section_path":["附加模块","pg_stat_statements"],"source_commits":["bb45156f3"],"source_entry_id":"17.0/changes/161","source_hash":"a592f4b812f8966cda97db262c24f01e7c1c6a4e472ff15446e81e012657ee1b","source_url":"/docs/release/17.0/#RELEASE-17-PGSTATSTATEMENTS","statement_hash":"f2259aba30c6564e7836765ac064b24dc77c1d6b0cfd71f91b1c1e8b16971140","text":"在 pg_stat_statements 中跟踪 DEALLOCATE（Dagfinn Ilmari Mannsåker, Michael Paquier）§ DEALLOCATE 名称在 pg_stat_statements 中存储为占位符。","title":"在 pg_stat_statements 中跟踪 DEALLOCATE","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["295c36c0c","5147ab1dd"],"commit_groups":[["295c36c0c"],["5147ab1dd"]],"commits":["295c36c0c","5147ab1dd"],"cves":[],"db_id":"a487787ae801d826d7c42eb4f15dd2e9","html":"\u003cp\u003e为 \u003ccode\u003epg_stat_statements\u003c/code\u003e 添加本地 I/O 块读/写耗时统计列（Nazir Bilal Yavuz）\u003ca href=\"https://postgr.es/c/295c36c0c\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/5147ab1dd\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e新列是 \u003ccode\u003elocal_blk_read_time\u003c/code\u003e 和 \u003ccode\u003elocal_blk_write_time\u003c/code\u003e。\u003c/p\u003e","id":"17.0-843394b54569c073","identity_text":"Add local I/O block read/write timing statistics columns of pg_stat_statements (Nazir Bilal Yavuz) The new columns are local_blk_read_time and local_blk_write_time.","part":"changes","patch_ids":["5bbfcb7876ccc999e0bc578d10ccf3d1","fed9aec98df0f1a466087cc808bd62be"],"related_changes":[{"db_id":"3a8f2092e95f906fe2ba774157ee86a4","evidence":{"ambiguous_patch_ids":["5bbfcb7876ccc999e0bc578d10ccf3d1"],"patch_ids":["5bbfcb7876ccc999e0bc578d10ccf3d1"],"same_day":true},"kind":"related","label":"17.0","source_url":"/docs/release/17.0/#RELEASE-17-EXPLAIN","title":"为 EXPLAIN 的 BUFFERS 输出添加本地 I/O 块读/写耗时统计信息","url":"/docs/compare/?release=17.0#17.0-70a7093e20ba6cd2","version":"17.0"}],"relations":[{"evidence":{"ambiguous_patch_ids":["5bbfcb7876ccc999e0bc578d10ccf3d1"],"patch_ids":["5bbfcb7876ccc999e0bc578d10ccf3d1"],"same_day":true},"rule":2,"target":"3a8f2092e95f906fe2ba774157ee86a4","type":"related"}],"section":"附加模块 / pg_stat_statements","section_path":["附加模块","pg_stat_statements"],"source_commits":["295c36c0c","5147ab1dd"],"source_entry_id":"17.0/changes/162","source_hash":"b6c1e6dfc39523b1bbc567f56280f7d73996ef76d15743118b7affb6a69bf8e3","source_url":"/docs/release/17.0/#RELEASE-17-PGSTATSTATEMENTS","statement_hash":"278c2b09b36f008be4c98de8c051e5fe1acff3e3f2e90db73286bc0b444f7454","text":"为 pg_stat_statements 添加本地 I/O 块读/写耗时统计列（Nazir Bilal Yavuz）§ § 新列是 local_blk_read_time 和 local_blk_write_time。","title":"为 pg_stat_statements 添加本地 I/O 块读/写耗时统计列","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["5a3423ad8"],"commit_groups":[["5a3423ad8"]],"commits":["5a3423ad8"],"cves":[],"db_id":"cfc33f9d4d45dd958c4e7f050c7845a6","html":"\u003cp\u003e为 \u003ccode\u003epg_stat_statements\u003c/code\u003e 添加 \u003cacronym\u003eJIT\u003c/acronym\u003e \u003ccode\u003edeform_counter\u003c/code\u003e 细节（Dmitry Dolgov）\u003ca href=\"https://postgr.es/c/5a3423ad8\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-0a15ab0156dc13fd","identity_text":"Add JIT deform_counter details to pg_stat_statements (Dmitry Dolgov)","part":"changes","patch_ids":["69b5f4ac2075731de6ade1ebfae6e6c3"],"related_changes":[{"db_id":"14f807d67bbb33e16136e47a0d977573","evidence":{"ambiguous_patch_ids":["69b5f4ac2075731de6ade1ebfae6e6c3"],"patch_ids":["69b5f4ac2075731de6ade1ebfae6e6c3"],"same_day":true},"kind":"related","label":"17.0","source_url":"/docs/release/17.0/#RELEASE-17-EXPLAIN","title":"为 EXPLAIN 添加 JIT deform_counter 细节","url":"/docs/compare/?release=17.0#17.0-b17cc37285e213a8","version":"17.0"}],"relations":[{"evidence":{"ambiguous_patch_ids":["69b5f4ac2075731de6ade1ebfae6e6c3"],"patch_ids":["69b5f4ac2075731de6ade1ebfae6e6c3"],"same_day":true},"rule":2,"target":"14f807d67bbb33e16136e47a0d977573","type":"related"}],"section":"附加模块 / pg_stat_statements","section_path":["附加模块","pg_stat_statements"],"source_commits":["5a3423ad8"],"source_entry_id":"17.0/changes/163","source_hash":"aa717c9cf9462f74ba98dab59847f2045b8215f349a843cb548b29b2a845da97","source_url":"/docs/release/17.0/#RELEASE-17-PGSTATSTATEMENTS","statement_hash":"e9e315333b7c76b331b16fb18be5f5185d899d1ff9058a43131cfdb7073d9ccf","text":"为 pg_stat_statements 添加 JIT deform_counter 细节（Dmitry Dolgov）§","title":"为 pg_stat_statements 添加 JIT deform_counter 细节","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["dc9f8a798"],"commit_groups":[["dc9f8a798"]],"commits":["dc9f8a798"],"cves":[],"db_id":"bc79670356131e39aad8d56b8b59d119","html":"\u003cp\u003e为 \u003ccode\u003epg_stat_statements_reset()\u003c/code\u003e 添加可选的第四个参数（\u003ccode\u003eminmax_only\u003c/code\u003e），以允许仅重置最小/最大统计信息（Andrei Zubkov）\u003ca href=\"https://postgr.es/c/dc9f8a798\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e该参数默认为 \u003ccode\u003efalse\u003c/code\u003e。\u003c/p\u003e","id":"17.0-e35b1e500c1f3cd8-1","identity_text":"Add optional fourth argument (minmax_only) to pg_stat_statements_reset() to allow for the resetting of only min/max statistics (Andrei Zubkov) This argument defaults to false.","part":"changes","patch_ids":["db7ed1ad22868410847bd9e5deaf33a5"],"related_changes":[{"db_id":"93ab538cead5b7f1878a5a35ff9096e8","evidence":{"ambiguous_patch_ids":["db7ed1ad22868410847bd9e5deaf33a5"],"patch_ids":["db7ed1ad22868410847bd9e5deaf33a5"],"same_day":true},"kind":"related","label":"17.0","source_url":"/docs/release/17.0/#RELEASE-17-PGSTATSTATEMENTS","title":"为 pg_stat_statements 添加列 stats_since 和 minmax_stats_since，用于跟踪条目创建时间以及上次最小/最大值重置时间","url":"/docs/compare/?release=17.0#17.0-e35b1e500c1f3cd8-2","version":"17.0"}],"relations":[{"evidence":{"ambiguous_patch_ids":["db7ed1ad22868410847bd9e5deaf33a5"],"patch_ids":["db7ed1ad22868410847bd9e5deaf33a5"],"same_day":true},"rule":2,"target":"93ab538cead5b7f1878a5a35ff9096e8","type":"related"}],"section":"附加模块 / pg_stat_statements","section_path":["附加模块","pg_stat_statements"],"source_commits":["dc9f8a798"],"source_entry_id":"17.0/changes/164","source_hash":"aa11a76de656b08b40e0985b99fe88255608b5a625ea489eb21fc718bfbd828f","source_url":"/docs/release/17.0/#RELEASE-17-PGSTATSTATEMENTS","statement_hash":"1e200afd7116407e1b97f88b968e3951d1029d4f7f611df985043c99d4d4df8b","text":"为 pg_stat_statements_reset() 添加可选的第四个参数（minmax_only），以允许仅重置最小/最大统计信息（Andrei Zubkov）§ 该参数默认为 false。","title":"为 pg_stat_statements_reset() 添加可选的第四个参数（minmax_only），以允许仅重置最小/最大统计信息","variants":[],"version":"17.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["dc9f8a798"],"commit_groups":[["dc9f8a798"]],"commits":["dc9f8a798"],"cves":[],"db_id":"93ab538cead5b7f1878a5a35ff9096e8","html":"\u003cp\u003e为 \u003ccode\u003epg_stat_statements\u003c/code\u003e 添加列 \u003ccode\u003estats_since\u003c/code\u003e 和 \u003ccode\u003eminmax_stats_since\u003c/code\u003e，用于跟踪条目创建时间以及上次最小/最大值重置时间（Andrei Zubkov）\u003ca href=\"https://postgr.es/c/dc9f8a798\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"17.0-e35b1e500c1f3cd8-2","identity_text":"Add pg_stat_statements columns stats_since and minmax_stats_since to track entry creation time and last min/max reset time (Andrei Zubkov)","part":"changes","patch_ids":["db7ed1ad22868410847bd9e5deaf33a5"],"related_changes":[{"db_id":"bc79670356131e39aad8d56b8b59d119","evidence":{"ambiguous_patch_ids":["db7ed1ad22868410847bd9e5deaf33a5"],"patch_ids":["db7ed1ad22868410847bd9e5deaf33a5"],"same_day":true},"kind":"related","label":"17.0","source_url":"/docs/release/17.0/#RELEASE-17-PGSTATSTATEMENTS","title":"为 pg_stat_statements_reset() 添加可选的第四个参数（minmax_only），以允许仅重置最小/最大统计信息","url":"/docs/compare/?release=17.0#17.0-e35b1e500c1f3cd8-1","version":"17.0"}],"relations":[{"evidence":{"ambiguous_patch_ids":["db7ed1ad22868410847bd9e5deaf33a5"],"patch_ids":["db7ed1ad22868410847bd9e5deaf33a5"],"same_day":true},"rule":2,"target":"bc79670356131e39aad8d56b8b59d119","type":"related"}],"section":"附加模块 / pg_stat_statements","section_path":["附加模块","pg_stat_statements"],"source_commits":["dc9f8a798"],"source_entry_id":"17.0/changes/165","source_hash":"78310acbc382ecef0bd777a01f5ac39f0d3565334f68fb387ff6a0e10c7dfeaf","source_url":"/docs/release/17.0/#RELEASE-17-PGSTATSTATEMENTS","statement_hash":"a1116325aeacc525e218e293d407fa884f808e5cadf4ef8a70b574a33284f053","text":"为 pg_stat_statements 添加列 stats_since 和 minmax_stats_since，用于跟踪条目创建时间以及上次最小/最大值重置时间（Andrei Zubkov）§","title":"为 pg_stat_statements 添加列 stats_since 和 minmax_stats_since，用于跟踪条目创建时间以及上次最小/最大值重置时间","variants":[],"version":"17.0"}],"entry_count":182,"eol":"2029-11-08","eol_date":"2029-11-08","label":"17.0","major":"17","manual":"17","manual_build":"17.11","manual_url":"/docs/17/release-17.html","migration_html":"\u003cp\u003e对于希望从任何以前的版本迁移数据的人来说，需要使用\u003ca href=\"/docs/17/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/17/pgupgrade.html\" title=\"pg_upgrade\"\u003e\u003cspan\u003e\u003cspan\u003epg_upgrade\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e或逻辑复制。有关迁移到新主要版本的通用信息，请参阅\u003ca href=\"/docs/17/upgrading.html\" title=\"18.6. 升级 PostgreSQL 集簇\"\u003e第 18.6 节\u003c/a\u003e。\u003c/p\u003e\n\u003cp\u003e版本 17 包含许多可能影响与以前版本兼容性的更改。请注意以下不兼容项：\u003c/p\u003e\n\u003cdiv\u003e\n\u003c/div\u003e","minor":0,"placeholder":false,"source_as_of":"","source_url":"/docs/release/17.0/","status":"stable","status_label":"Supported","support_days":1123,"supported":true,"version":"17.0"}],"mode":"release","release_count":1,"remaining_cves":[],"security_as_of":"2026-09-26","security_regressions":[],"source_as_of":"2026-09-26","stats":[{"count":182,"key":"all","label":"All changes"},{"count":154,"key":"feature","label":"Features"},{"count":2,"key":"bugfix","label":"Bug fixes"},{"count":0,"key":"security","label":"Security"},{"count":9,"key":"performance","label":"Performance"},{"count":17,"key":"compatibility","label":"Compatibility"},{"count":0,"key":"improvement","label":"Improvements"}],"to_release":{"age_days":746,"build":"17.0","changes_count":165,"compatibility_count":17,"content_hash":"7b994321b45cd60ec1abd48e76a6e3181be4c8c23990ba3f2ca6117cbc9ca4bc","date":"2024-09-26","date_text":"2024-09-26","doc_git":"","doc_loaded_at":"2026-09-26T02:56:35.922301","entry_count":182,"eol":"2029-11-08","eol_date":"2029-11-08","label":"17.0","major":"17","manual":"17","manual_build":"17.11","manual_url":"/docs/17/release-17.html","migration_html":"\u003cp\u003e对于希望从任何以前的版本迁移数据的人来说，需要使用\u003ca href=\"/docs/17/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/17/pgupgrade.html\" title=\"pg_upgrade\"\u003e\u003cspan\u003e\u003cspan\u003epg_upgrade\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e或逻辑复制。有关迁移到新主要版本的通用信息，请参阅\u003ca href=\"/docs/17/upgrading.html\" title=\"18.6. 升级 PostgreSQL 集簇\"\u003e第 18.6 节\u003c/a\u003e。\u003c/p\u003e\n\u003cp\u003e版本 17 包含许多可能影响与以前版本兼容性的更改。请注意以下不兼容项：\u003c/p\u003e\n\u003cdiv\u003e\n\u003c/div\u003e","minor":0,"placeholder":false,"source_as_of":"","source_url":"/docs/release/17.0/","status":"stable","status_label":"Supported","support_days":1123,"supported":true,"version":"17.0"},"total":182,"warnings":[]}
