{"already_in_source_count":0,"candidate_count":33,"cross_major":false,"cve_available":true,"cve_count":0,"cves":[],"duplicate_count":0,"excluded_count":0,"exclusions":[],"from_release":null,"groups":[{"age_days":3532,"build":"9.2.20","changes_count":33,"compatibility_count":0,"content_hash":"b8b86002e8fa4979f6d3f210f883cefcd057eb954f242f489c29b5005b532ed8","date":"2017-02-09","date_text":"2017-02-09","doc_git":"","doc_loaded_at":"2026-09-26T02:56:46.946617","entries":[{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"83bfe86923226dd4e0badea659d093d4","html":"\u003cp\u003e      修复可能导致用 \u003ccode\u003eCREATE INDEX CONCURRENTLY\u003c/code\u003e 构建的索引损坏的竞态条件（Pavan Deolasee、Tom Lane）\n     \u003c/p\u003e\u003cp\u003e      如果 \u003ccode\u003eCREATE INDEX CONCURRENTLY\u003c/code\u003e 被用于构建一个依赖于先前未被索引的列的索引，那么与 \u003ccode\u003eCREATE INDEX\u003c/code\u003e\n      命令并发运行的事务所更新的行可能收到错误的索引条目。如果怀疑这可能已发生，最可靠的解决方案是在安装此更新后重建受影响的索引。\n     \u003c/p\u003e","id":"9.2.20-21a67de54dffdc53","identity_text":"Fix a race condition that could cause indexes built with CREATE INDEX CONCURRENTLY to be corrupt (Pavan Deolasee, Tom Lane) If CREATE INDEX CONCURRENTLY was used to build an index that depends on a column not previously indexed, then rows updated by transactions that ran concurrently with the CREATE INDEX command could have received incorrect index entries. If you suspect this may have happened, the most reliable solution is to rebuild affected indexes after installing this update.","part":"changes","patch_ids":[],"related_changes":[{"db_id":"1cf1b386fe96749b60daea1d10f070a2","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"e8db4e9090b0f69fecdfe14553ed600263da9d0363101942b7601a33d19b0ce1"},"kind":"equivalent","label":"9.6.2","source_url":"/docs/release/9.6.2/#id-1.11.6.27.5","title":"修复可能导致用 CREATE INDEX CONCURRENTLY 构建的索引损坏的竞态条件","url":"/docs/compare/?release=9.6.2#9.6.2-21a67de54dffdc53","version":"9.6.2"},{"db_id":"f3c2b62e07edee730ed0d25e17fadc66","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"e8db4e9090b0f69fecdfe14553ed600263da9d0363101942b7601a33d19b0ce1"},"kind":"equivalent","label":"9.5.6","source_url":"/docs/release/9.5.6/#id-1.11.6.24.5","title":"修复可能导致用 CREATE INDEX CONCURRENTLY 构建的索引损坏的竞态条件","url":"/docs/compare/?release=9.5.6#9.5.6-21a67de54dffdc53","version":"9.5.6"},{"db_id":"da451e693368b905282c3421d049ca20","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"e8db4e9090b0f69fecdfe14553ed600263da9d0363101942b7601a33d19b0ce1"},"kind":"equivalent","label":"9.4.11","source_url":"/docs/release/9.4.11/#id-1.11.6.20.5","title":"修复可能导致用 CREATE INDEX CONCURRENTLY 构建的索引损坏的竞态条件","url":"/docs/compare/?release=9.4.11#9.4.11-21a67de54dffdc53","version":"9.4.11"},{"db_id":"80f05bec188e07b7d3f6a0b6791679fc","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"e8db4e9090b0f69fecdfe14553ed600263da9d0363101942b7601a33d19b0ce1"},"kind":"equivalent","label":"9.3.16","source_url":"/docs/release/9.3.16/#id-1.11.6.14.5","title":"修复可能导致用 CREATE INDEX CONCURRENTLY 构建的索引损坏的竞态条件","url":"/docs/compare/?release=9.3.16#9.3.16-21a67de54dffdc53","version":"9.3.16"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"e8db4e9090b0f69fecdfe14553ed600263da9d0363101942b7601a33d19b0ce1"},"rule":2,"target":"1cf1b386fe96749b60daea1d10f070a2","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"e8db4e9090b0f69fecdfe14553ed600263da9d0363101942b7601a33d19b0ce1"},"rule":2,"target":"80f05bec188e07b7d3f6a0b6791679fc","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"e8db4e9090b0f69fecdfe14553ed600263da9d0363101942b7601a33d19b0ce1"},"rule":2,"target":"da451e693368b905282c3421d049ca20","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"e8db4e9090b0f69fecdfe14553ed600263da9d0363101942b7601a33d19b0ce1"},"rule":2,"target":"f3c2b62e07edee730ed0d25e17fadc66","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.20/changes/001","source_hash":"8581db6849419e3ec888d1c2710aae2f2161b4e20cd1edde1f676d74a8d4efbc","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"e8db4e9090b0f69fecdfe14553ed600263da9d0363101942b7601a33d19b0ce1","text":"修复可能导致用 CREATE INDEX CONCURRENTLY 构建的索引损坏的竞态条件（Pavan Deolasee、Tom Lane） 如果 CREATE INDEX CONCURRENTLY 被用于构建一个依赖于先前未被索引的列的索引，那么与 CREATE INDEX 命令并发运行的事务所更新的行可能收到错误的索引条目。如果怀疑这可能已发生，最可靠的解决方案是在安装此更新后重建受影响的索引。","title":"修复可能导致用 CREATE INDEX CONCURRENTLY 构建的索引损坏的竞态条件","variants":[],"version":"9.2.20"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"8800fa89cd7d4ca0f42ba417a524734e","html":"\u003cp\u003e      无条件地为未记录表的\u003cspan\u003e“\u003cspan\u003einit fork\u003c/span\u003e”\u003c/span\u003e写 WAL 日志（Michael Paquier）\n     \u003c/p\u003e\u003cp\u003e      此前当\u003ca href=\"/docs/9.2/runtime-config-wal.html#GUC-WAL-LEVEL\"\u003ewal_level\u003c/a\u003e = \u003ccode\u003eminimum\u003c/code\u003e\n      时跳过这一步，但实际上即使在这种情况下也需要它，以确保未记录表在崩溃后被正确重置为空。\n     \u003c/p\u003e","id":"9.2.20-dbf4362fbbfe6087","identity_text":"Unconditionally WAL-log creation of the init fork for an unlogged table (Michael Paquier) Previously, this was skipped when guc-wal-level = minimal, but actually it's necessary even in that case to ensure that the unlogged table is properly reset to empty after a crash.","part":"changes","patch_ids":[],"related_changes":[{"db_id":"96a2ccd3484c42b56fc3124dff045bcc","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"990d0d9a4900b3fcf84852ba2e3daa4fff8ae2a8427dc3d303961d75f4466b41"},"kind":"equivalent","label":"9.6.2","source_url":"/docs/release/9.6.2/#id-1.11.6.27.5","title":"无条件地为未记录表的 “init fork” 写 WAL 日志","url":"/docs/compare/?release=9.6.2#9.6.2-c73b348ba5749039","version":"9.6.2"},{"db_id":"2debfe09e358306f7ebcf196fe79b585","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"990d0d9a4900b3fcf84852ba2e3daa4fff8ae2a8427dc3d303961d75f4466b41"},"kind":"equivalent","label":"9.5.6","source_url":"/docs/release/9.5.6/#id-1.11.6.24.5","title":"无条件地为未记录表的 “init fork” 写 WAL 日志","url":"/docs/compare/?release=9.5.6#9.5.6-c73b348ba5749039","version":"9.5.6"},{"db_id":"c6f68b3c5a7bedd78abd53ea623e5172","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"990d0d9a4900b3fcf84852ba2e3daa4fff8ae2a8427dc3d303961d75f4466b41"},"kind":"equivalent","label":"9.4.11","source_url":"/docs/release/9.4.11/#id-1.11.6.20.5","title":"无条件地为未记录表的 “init fork” 写 WAL 日志","url":"/docs/compare/?release=9.4.11#9.4.11-c73b348ba5749039","version":"9.4.11"},{"db_id":"b750554a280b9a7fb664ae9c535c3aed","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"990d0d9a4900b3fcf84852ba2e3daa4fff8ae2a8427dc3d303961d75f4466b41"},"kind":"equivalent","label":"9.3.16","source_url":"/docs/release/9.3.16/#id-1.11.6.14.5","title":"无条件地为未记录表的 “init fork” 写 WAL 日志","url":"/docs/compare/?release=9.3.16#9.3.16-c73b348ba5749039","version":"9.3.16"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"990d0d9a4900b3fcf84852ba2e3daa4fff8ae2a8427dc3d303961d75f4466b41"},"rule":2,"target":"2debfe09e358306f7ebcf196fe79b585","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"990d0d9a4900b3fcf84852ba2e3daa4fff8ae2a8427dc3d303961d75f4466b41"},"rule":2,"target":"96a2ccd3484c42b56fc3124dff045bcc","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"990d0d9a4900b3fcf84852ba2e3daa4fff8ae2a8427dc3d303961d75f4466b41"},"rule":2,"target":"b750554a280b9a7fb664ae9c535c3aed","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"990d0d9a4900b3fcf84852ba2e3daa4fff8ae2a8427dc3d303961d75f4466b41"},"rule":2,"target":"c6f68b3c5a7bedd78abd53ea623e5172","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.20/changes/002","source_hash":"89b1e1637e5746a60af6f99fb77b7a2b1bedbdb2ffaf2e568ab593ccc5d33bf2","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"990d0d9a4900b3fcf84852ba2e3daa4fff8ae2a8427dc3d303961d75f4466b41","text":"无条件地为未记录表的“init fork”写 WAL 日志（Michael Paquier） 此前当wal_level = minimum 时跳过这一步，但实际上即使在这种情况下也需要它，以确保未记录表在崩溃后被正确重置为空。","title":"无条件地为未记录表的“init fork”写 WAL 日志","variants":[],"version":"9.2.20"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["38bec1805"],"commit_groups":[["38bec1805"]],"commits":[],"cves":[],"db_id":"15e6a4dd2408bf8ca79c27b43f82fab2","html":"\u003cp\u003e      修复重新读取段时 WAL 页头的校验（Takayuki Tsunakawa、Amit Kapila）\n     \u003c/p\u003e\u003cp\u003e      在极端情况下，恢复期间可能报告虚假的\u003cspan\u003e“\u003cspan\u003eout-of-sequence TLI\u003c/span\u003e”\u003c/span\u003e错误。\n     \u003c/p\u003e","id":"9.2.20-5ce8122bf04c298f","identity_text":"Fix WAL page header validation when re-reading segments (Takayuki Tsunakawa, Amit Kapila) In corner cases, a spurious out-of-sequence TLI error could be reported during recovery.","part":"changes","patch_ids":["e4ef746007339a73c21ab2433928b77d"],"related_changes":[],"relations":[],"section":"变更","section_path":["变更"],"source_commits":["38bec1805"],"source_entry_id":"9.2.20/changes/003","source_hash":"742e4669bb580cba23305d60ff70501a200799b39c389216abc4beea3cbce4f9","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"cb1bc0f25191cee6c200f617b612fe73e07adcff6a9b8374e4073ad87a7ac6ef","text":"修复重新读取段时 WAL 页头的校验（Takayuki Tsunakawa、Amit Kapila） 在极端情况下，恢复期间可能报告虚假的“out-of-sequence TLI”错误。","title":"修复重新读取段时 WAL 页头的校验","variants":[],"version":"9.2.20"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"5cd2d2ca24fb08243155c25f7150bab8","html":"\u003cp\u003e      如果统计收集器在热备期间死亡，重启它（Takayuki Tsunakawa）\n     \u003c/p\u003e","id":"9.2.20-0f82f6bd0e8b372d","identity_text":"If the stats collector dies during hot standby, restart it (Takayuki Tsunakawa)","part":"changes","patch_ids":[],"related_changes":[{"db_id":"de4a22008d1a7afbe4d6940986bb6745","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"7d431ad3f15bdd3ec61c5eb2c3685529936f3395f1cfc0e6ec3399b0ea4de1c6"},"kind":"equivalent","label":"9.6.2","source_url":"/docs/release/9.6.2/#id-1.11.6.27.5","title":"如果统计收集器在热备期间死亡，重启它","url":"/docs/compare/?release=9.6.2#9.6.2-0f82f6bd0e8b372d","version":"9.6.2"},{"db_id":"3565a145961676913ee62a2e99986cf4","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"7d431ad3f15bdd3ec61c5eb2c3685529936f3395f1cfc0e6ec3399b0ea4de1c6"},"kind":"equivalent","label":"9.5.6","source_url":"/docs/release/9.5.6/#id-1.11.6.24.5","title":"如果统计收集器在热备期间死亡，重启它","url":"/docs/compare/?release=9.5.6#9.5.6-0f82f6bd0e8b372d","version":"9.5.6"},{"db_id":"e7a331a06d5fd2e3592830e064808397","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"7d431ad3f15bdd3ec61c5eb2c3685529936f3395f1cfc0e6ec3399b0ea4de1c6"},"kind":"equivalent","label":"9.4.11","source_url":"/docs/release/9.4.11/#id-1.11.6.20.5","title":"如果统计收集器在热备期间死亡，重启它","url":"/docs/compare/?release=9.4.11#9.4.11-0f82f6bd0e8b372d","version":"9.4.11"},{"db_id":"c6a9d1159620c8f9492800dea76a81e3","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"7d431ad3f15bdd3ec61c5eb2c3685529936f3395f1cfc0e6ec3399b0ea4de1c6"},"kind":"equivalent","label":"9.3.16","source_url":"/docs/release/9.3.16/#id-1.11.6.14.5","title":"如果统计收集器在热备期间死亡，重启它","url":"/docs/compare/?release=9.3.16#9.3.16-0f82f6bd0e8b372d","version":"9.3.16"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"7d431ad3f15bdd3ec61c5eb2c3685529936f3395f1cfc0e6ec3399b0ea4de1c6"},"rule":2,"target":"3565a145961676913ee62a2e99986cf4","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"7d431ad3f15bdd3ec61c5eb2c3685529936f3395f1cfc0e6ec3399b0ea4de1c6"},"rule":2,"target":"c6a9d1159620c8f9492800dea76a81e3","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"7d431ad3f15bdd3ec61c5eb2c3685529936f3395f1cfc0e6ec3399b0ea4de1c6"},"rule":2,"target":"de4a22008d1a7afbe4d6940986bb6745","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"7d431ad3f15bdd3ec61c5eb2c3685529936f3395f1cfc0e6ec3399b0ea4de1c6"},"rule":2,"target":"e7a331a06d5fd2e3592830e064808397","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.20/changes/004","source_hash":"da355054b572b961460838ec1829293f8b0f1443ea94dec7a0746e8bc84a4d38","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"7d431ad3f15bdd3ec61c5eb2c3685529936f3395f1cfc0e6ec3399b0ea4de1c6","text":"如果统计收集器在热备期间死亡，重启它（Takayuki Tsunakawa）","title":"如果统计收集器在热备期间死亡，重启它","variants":[],"version":"9.2.20"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"d08fdcde47ec4f569bbf62c039c95924","html":"\u003cp\u003e      热备等待冲突查询时检查中断（Simon Riggs）\n     \u003c/p\u003e","id":"9.2.20-2f1772ccd52404ad","identity_text":"Check for interrupts while hot standby is waiting for a conflicting query (Simon Riggs)","part":"changes","patch_ids":[],"related_changes":[{"db_id":"904e692e04647660f143f1abbd55fb2b","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"1eebd16f1e1b811eb7b4029ff12f823adbbe938172d41e16ed0e7828f7f1d247"},"kind":"equivalent","label":"9.6.2","source_url":"/docs/release/9.6.2/#id-1.11.6.27.5","title":"热备等待冲突查询时检查中断","url":"/docs/compare/?release=9.6.2#9.6.2-2f1772ccd52404ad","version":"9.6.2"},{"db_id":"f7eeb1dfac0116093446d208fcff1772","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"1eebd16f1e1b811eb7b4029ff12f823adbbe938172d41e16ed0e7828f7f1d247"},"kind":"equivalent","label":"9.5.6","source_url":"/docs/release/9.5.6/#id-1.11.6.24.5","title":"热备等待冲突查询时检查中断","url":"/docs/compare/?release=9.5.6#9.5.6-2f1772ccd52404ad","version":"9.5.6"},{"db_id":"d729e551b00e1e502cf2a1171df1894b","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"1eebd16f1e1b811eb7b4029ff12f823adbbe938172d41e16ed0e7828f7f1d247"},"kind":"equivalent","label":"9.4.11","source_url":"/docs/release/9.4.11/#id-1.11.6.20.5","title":"热备等待冲突查询时检查中断","url":"/docs/compare/?release=9.4.11#9.4.11-2f1772ccd52404ad","version":"9.4.11"},{"db_id":"418ce2365b56a5159ffcc02fac0f59e1","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"1eebd16f1e1b811eb7b4029ff12f823adbbe938172d41e16ed0e7828f7f1d247"},"kind":"equivalent","label":"9.3.16","source_url":"/docs/release/9.3.16/#id-1.11.6.14.5","title":"热备等待冲突查询时检查中断","url":"/docs/compare/?release=9.3.16#9.3.16-2f1772ccd52404ad","version":"9.3.16"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"1eebd16f1e1b811eb7b4029ff12f823adbbe938172d41e16ed0e7828f7f1d247"},"rule":2,"target":"418ce2365b56a5159ffcc02fac0f59e1","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"1eebd16f1e1b811eb7b4029ff12f823adbbe938172d41e16ed0e7828f7f1d247"},"rule":2,"target":"904e692e04647660f143f1abbd55fb2b","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"1eebd16f1e1b811eb7b4029ff12f823adbbe938172d41e16ed0e7828f7f1d247"},"rule":2,"target":"d729e551b00e1e502cf2a1171df1894b","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"1eebd16f1e1b811eb7b4029ff12f823adbbe938172d41e16ed0e7828f7f1d247"},"rule":2,"target":"f7eeb1dfac0116093446d208fcff1772","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.20/changes/005","source_hash":"77dc905a671040b620960e855401b5be4237377965986048932174918f4e113a","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"1eebd16f1e1b811eb7b4029ff12f823adbbe938172d41e16ed0e7828f7f1d247","text":"热备等待冲突查询时检查中断（Simon Riggs）","title":"热备等待冲突查询时检查中断","variants":[],"version":"9.2.20"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"ccc0f6bc1bd1392b9fc1f27d5bd3588e","html":"\u003cp\u003e      避免边界情况下自动清理启动器的不断重启（Amit Khandekar）\n     \u003c/p\u003e\u003cp\u003e      此修复避免了自动清理名义上关闭且有一些需要冻结的表，但所有这种表都已被自动清理工作者处理时的问题。\n     \u003c/p\u003e","id":"9.2.20-b47d5ae4829cde1d","identity_text":"Avoid constantly respawning the autovacuum launcher in a corner case (Amit Khandekar) This fix avoids problems when autovacuum is nominally off and there are some tables that require freezing, but all such tables are already being processed by autovacuum workers.","part":"changes","patch_ids":[],"related_changes":[{"db_id":"aa38277809efab39953b106568c98bf9","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"62f8bb047127b9e165a52f641648ca8b710730e6ff498bc962e02bc7516abd4e"},"kind":"equivalent","label":"9.6.2","source_url":"/docs/release/9.6.2/#id-1.11.6.27.5","title":"避免边界情况下自动清理启动器的不断重启","url":"/docs/compare/?release=9.6.2#9.6.2-b47d5ae4829cde1d","version":"9.6.2"},{"db_id":"89017e1d3ff5af35903564a49d0d91d0","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"62f8bb047127b9e165a52f641648ca8b710730e6ff498bc962e02bc7516abd4e"},"kind":"equivalent","label":"9.5.6","source_url":"/docs/release/9.5.6/#id-1.11.6.24.5","title":"避免边界情况下自动清理启动器的不断重启","url":"/docs/compare/?release=9.5.6#9.5.6-b47d5ae4829cde1d","version":"9.5.6"},{"db_id":"8a8ffdf1dacd6ab87d6692ed2bca3e52","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"62f8bb047127b9e165a52f641648ca8b710730e6ff498bc962e02bc7516abd4e"},"kind":"equivalent","label":"9.4.11","source_url":"/docs/release/9.4.11/#id-1.11.6.20.5","title":"避免边界情况下自动清理启动器的不断重启","url":"/docs/compare/?release=9.4.11#9.4.11-b47d5ae4829cde1d","version":"9.4.11"},{"db_id":"a3281c6a1a3aa069f7c670b9497931e8","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"62f8bb047127b9e165a52f641648ca8b710730e6ff498bc962e02bc7516abd4e"},"kind":"equivalent","label":"9.3.16","source_url":"/docs/release/9.3.16/#id-1.11.6.14.5","title":"避免边界情况下自动清理启动器的不断重启","url":"/docs/compare/?release=9.3.16#9.3.16-b47d5ae4829cde1d","version":"9.3.16"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"62f8bb047127b9e165a52f641648ca8b710730e6ff498bc962e02bc7516abd4e"},"rule":2,"target":"89017e1d3ff5af35903564a49d0d91d0","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"62f8bb047127b9e165a52f641648ca8b710730e6ff498bc962e02bc7516abd4e"},"rule":2,"target":"8a8ffdf1dacd6ab87d6692ed2bca3e52","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"62f8bb047127b9e165a52f641648ca8b710730e6ff498bc962e02bc7516abd4e"},"rule":2,"target":"a3281c6a1a3aa069f7c670b9497931e8","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"62f8bb047127b9e165a52f641648ca8b710730e6ff498bc962e02bc7516abd4e"},"rule":2,"target":"aa38277809efab39953b106568c98bf9","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.20/changes/006","source_hash":"07858a0af57552ff60918aaa26736c59376bd933317eaa2fcad47481a86b08fb","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"62f8bb047127b9e165a52f641648ca8b710730e6ff498bc962e02bc7516abd4e","text":"避免边界情况下自动清理启动器的不断重启（Amit Khandekar） 此修复避免了自动清理名义上关闭且有一些需要冻结的表，但所有这种表都已被自动清理工作者处理时的问题。","title":"避免边界情况下自动清理启动器的不断重启","variants":[],"version":"9.2.20"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"b2a1fd04c001ab77cd5d29af552c323a","html":"\u003cp\u003e      修复扩展成员对象何时可被删除的检查（Tom Lane）\n     \u003c/p\u003e\u003cp\u003e      扩展升级脚本应当能删除成员对象，但对序列列的序列（可能还有其他情况）这不被允许。\n     \u003c/p\u003e","id":"9.2.20-77b3340da27d93a5","identity_text":"Fix check for when an extension member object can be dropped (Tom Lane) Extension upgrade scripts should be able to drop member objects, but this was disallowed for serial-column sequences, and possibly other cases.","part":"changes","patch_ids":[],"related_changes":[{"db_id":"54c022475888431c0d41c6627d11dd7c","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"b628bcdfbd256658f9b68ca91595fd0d67a406b80c0ed57b7b1363aafe8af6a7"},"kind":"equivalent","label":"9.6.2","source_url":"/docs/release/9.6.2/#id-1.11.6.27.5","title":"修复扩展成员对象何时可被删除的检查","url":"/docs/compare/?release=9.6.2#9.6.2-77b3340da27d93a5","version":"9.6.2"},{"db_id":"90cc460b606c55a661713e42f58ddd06","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"b628bcdfbd256658f9b68ca91595fd0d67a406b80c0ed57b7b1363aafe8af6a7"},"kind":"equivalent","label":"9.5.6","source_url":"/docs/release/9.5.6/#id-1.11.6.24.5","title":"修复扩展成员对象何时可被删除的检查","url":"/docs/compare/?release=9.5.6#9.5.6-77b3340da27d93a5","version":"9.5.6"},{"db_id":"f4270e9af73e1877ed538fab27b58e81","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"b628bcdfbd256658f9b68ca91595fd0d67a406b80c0ed57b7b1363aafe8af6a7"},"kind":"equivalent","label":"9.4.11","source_url":"/docs/release/9.4.11/#id-1.11.6.20.5","title":"修复扩展成员对象何时可被删除的检查","url":"/docs/compare/?release=9.4.11#9.4.11-77b3340da27d93a5","version":"9.4.11"},{"db_id":"5c374ac5cee41cb051285200e880aca6","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"b628bcdfbd256658f9b68ca91595fd0d67a406b80c0ed57b7b1363aafe8af6a7"},"kind":"equivalent","label":"9.3.16","source_url":"/docs/release/9.3.16/#id-1.11.6.14.5","title":"修复扩展成员对象何时可被删除的检查","url":"/docs/compare/?release=9.3.16#9.3.16-77b3340da27d93a5","version":"9.3.16"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"b628bcdfbd256658f9b68ca91595fd0d67a406b80c0ed57b7b1363aafe8af6a7"},"rule":2,"target":"54c022475888431c0d41c6627d11dd7c","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"b628bcdfbd256658f9b68ca91595fd0d67a406b80c0ed57b7b1363aafe8af6a7"},"rule":2,"target":"5c374ac5cee41cb051285200e880aca6","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"b628bcdfbd256658f9b68ca91595fd0d67a406b80c0ed57b7b1363aafe8af6a7"},"rule":2,"target":"90cc460b606c55a661713e42f58ddd06","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"b628bcdfbd256658f9b68ca91595fd0d67a406b80c0ed57b7b1363aafe8af6a7"},"rule":2,"target":"f4270e9af73e1877ed538fab27b58e81","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.20/changes/007","source_hash":"dcf1f6e1edb1eb1cf6cf60ee3d38dddc3ea53804a6817fb0d56d21505b685579","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"b628bcdfbd256658f9b68ca91595fd0d67a406b80c0ed57b7b1363aafe8af6a7","text":"修复扩展成员对象何时可被删除的检查（Tom Lane） 扩展升级脚本应当能删除成员对象，但对序列列的序列（可能还有其他情况）这不被允许。","title":"修复扩展成员对象何时可被删除的检查","variants":[],"version":"9.2.20"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"8e7e3ca249ae1764f1792d1243b6e38c","html":"\u003cp\u003e      确保 \u003ccode\u003eALTER TABLE\u003c/code\u003e 重建索引时保留索引表空间分配（Tom Lane、Michael Paquier）\n     \u003c/p\u003e\u003cp\u003e      此前，\u003ca href=\"/docs/9.2/runtime-config-client.html#GUC-DEFAULT-TABLESPACE\"\u003edefault_tablespace\u003c/a\u003e的非默认设置可能导致索引损坏。\n     \u003c/p\u003e","id":"9.2.20-92e6a6e4971f8631","identity_text":"Make sure ALTER TABLE preserves index tablespace assignments when rebuilding indexes (Tom Lane, Michael Paquier) Previously, non-default settings of guc-default-tablespace could result in broken indexes.","part":"changes","patch_ids":[],"related_changes":[{"db_id":"8c2998b77b9aaad172f95093a387ff93","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"644e0ac6faa01622711ab0b03fce6ea733a0a4d7fc85d337fb686a4d724c5c53"},"kind":"equivalent","label":"9.6.2","source_url":"/docs/release/9.6.2/#id-1.11.6.27.5","title":"确保 ALTER TABLE 重建索引时保留索引表空间分配","url":"/docs/compare/?release=9.6.2#9.6.2-92e6a6e4971f8631","version":"9.6.2"},{"db_id":"ea5a7adb4bb360e50c78a14021cb2906","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"644e0ac6faa01622711ab0b03fce6ea733a0a4d7fc85d337fb686a4d724c5c53"},"kind":"equivalent","label":"9.5.6","source_url":"/docs/release/9.5.6/#id-1.11.6.24.5","title":"确保 ALTER TABLE 重建索引时保留索引表空间分配","url":"/docs/compare/?release=9.5.6#9.5.6-92e6a6e4971f8631","version":"9.5.6"},{"db_id":"a940ace5794433517e51d947f4235130","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"644e0ac6faa01622711ab0b03fce6ea733a0a4d7fc85d337fb686a4d724c5c53"},"kind":"equivalent","label":"9.4.11","source_url":"/docs/release/9.4.11/#id-1.11.6.20.5","title":"确保 ALTER TABLE 重建索引时保留索引表空间分配","url":"/docs/compare/?release=9.4.11#9.4.11-92e6a6e4971f8631","version":"9.4.11"},{"db_id":"f3ec2ab38f376224b5a1cf410ead414e","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"644e0ac6faa01622711ab0b03fce6ea733a0a4d7fc85d337fb686a4d724c5c53"},"kind":"equivalent","label":"9.3.16","source_url":"/docs/release/9.3.16/#id-1.11.6.14.5","title":"确保 ALTER TABLE 重建索引时保留索引表空间分配","url":"/docs/compare/?release=9.3.16#9.3.16-92e6a6e4971f8631","version":"9.3.16"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"644e0ac6faa01622711ab0b03fce6ea733a0a4d7fc85d337fb686a4d724c5c53"},"rule":2,"target":"8c2998b77b9aaad172f95093a387ff93","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"644e0ac6faa01622711ab0b03fce6ea733a0a4d7fc85d337fb686a4d724c5c53"},"rule":2,"target":"a940ace5794433517e51d947f4235130","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"644e0ac6faa01622711ab0b03fce6ea733a0a4d7fc85d337fb686a4d724c5c53"},"rule":2,"target":"ea5a7adb4bb360e50c78a14021cb2906","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"644e0ac6faa01622711ab0b03fce6ea733a0a4d7fc85d337fb686a4d724c5c53"},"rule":2,"target":"f3ec2ab38f376224b5a1cf410ead414e","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.20/changes/008","source_hash":"178c0266419c1d539309732b83f0b2135d4b32f14461ee424fadac827f8a9c42","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"644e0ac6faa01622711ab0b03fce6ea733a0a4d7fc85d337fb686a4d724c5c53","text":"确保 ALTER TABLE 重建索引时保留索引表空间分配（Tom Lane、Michael Paquier） 此前，default_tablespace的非默认设置可能导致索引损坏。","title":"确保 ALTER TABLE 重建索引时保留索引表空间分配","variants":[],"version":"9.2.20"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"cfaeb4233abb836f8a9b62a8363fd4dd","html":"\u003cp\u003e      如果被引用关系有未决的触发器事件，防止删除外键约束（Tom Lane）\n     \u003c/p\u003e\u003cp\u003e      这避免了\u003cspan\u003e“\u003cspan\u003ecould not find trigger \u003cem\u003e\u003ccode\u003eNNN\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e”\u003c/span\u003e或\u003cspan\u003e“\u003cspan\u003erelation \u003cem\u003e\u003ccode\u003eNNN\u003c/code\u003e\u003c/em\u003e has no triggers\u003c/span\u003e”\u003c/span\u003e错误。\n     \u003c/p\u003e","id":"9.2.20-3f696a5cebc0a39b","identity_text":"Prevent dropping a foreign-key constraint if there are pending trigger events for the referenced relation (Tom Lane) This avoids could not find trigger NNN or relation NNN has no triggers errors.","part":"changes","patch_ids":[],"related_changes":[{"db_id":"e3e90c45c0b1ffffb3efe7f0453c17a6","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"6948adff38aa57dbc2ade4f98c1860a93cd9a327c2a7f9ec954637eef6f48ef5"},"kind":"equivalent","label":"9.6.2","source_url":"/docs/release/9.6.2/#id-1.11.6.27.5","title":"如果被引用关系有未决的触发器事件，防止删除外键约束","url":"/docs/compare/?release=9.6.2#9.6.2-3f696a5cebc0a39b","version":"9.6.2"},{"db_id":"d733025ccceb6389f46aedbbb8111ce2","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"6948adff38aa57dbc2ade4f98c1860a93cd9a327c2a7f9ec954637eef6f48ef5"},"kind":"equivalent","label":"9.5.6","source_url":"/docs/release/9.5.6/#id-1.11.6.24.5","title":"如果被引用关系有未决的触发器事件，防止删除外键约束","url":"/docs/compare/?release=9.5.6#9.5.6-3f696a5cebc0a39b","version":"9.5.6"},{"db_id":"4180f1dc12d821cfb0d34a11cb7eda3a","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"6948adff38aa57dbc2ade4f98c1860a93cd9a327c2a7f9ec954637eef6f48ef5"},"kind":"equivalent","label":"9.4.11","source_url":"/docs/release/9.4.11/#id-1.11.6.20.5","title":"如果被引用关系有未决的触发器事件，防止删除外键约束","url":"/docs/compare/?release=9.4.11#9.4.11-3f696a5cebc0a39b","version":"9.4.11"},{"db_id":"d2463ec969093f0493acb893a8c637e2","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"6948adff38aa57dbc2ade4f98c1860a93cd9a327c2a7f9ec954637eef6f48ef5"},"kind":"equivalent","label":"9.3.16","source_url":"/docs/release/9.3.16/#id-1.11.6.14.5","title":"如果被引用关系有未决的触发器事件，防止删除外键约束","url":"/docs/compare/?release=9.3.16#9.3.16-3f696a5cebc0a39b","version":"9.3.16"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"6948adff38aa57dbc2ade4f98c1860a93cd9a327c2a7f9ec954637eef6f48ef5"},"rule":2,"target":"4180f1dc12d821cfb0d34a11cb7eda3a","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"6948adff38aa57dbc2ade4f98c1860a93cd9a327c2a7f9ec954637eef6f48ef5"},"rule":2,"target":"d2463ec969093f0493acb893a8c637e2","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"6948adff38aa57dbc2ade4f98c1860a93cd9a327c2a7f9ec954637eef6f48ef5"},"rule":2,"target":"d733025ccceb6389f46aedbbb8111ce2","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"6948adff38aa57dbc2ade4f98c1860a93cd9a327c2a7f9ec954637eef6f48ef5"},"rule":2,"target":"e3e90c45c0b1ffffb3efe7f0453c17a6","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.20/changes/009","source_hash":"26e71282706df78acf928f965867530d7329ce76acdb6c1ea1ae21b06f152205","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"6948adff38aa57dbc2ade4f98c1860a93cd9a327c2a7f9ec954637eef6f48ef5","text":"如果被引用关系有未决的触发器事件，防止删除外键约束（Tom Lane） 这避免了“could not find trigger NNN”或“relation NNN has no triggers”错误。","title":"如果被引用关系有未决的触发器事件，防止删除外键约束","variants":[],"version":"9.2.20"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"ce5ca50cbec28a07219808056bb5a5cd","html":"\u003cp\u003e      修复带 OID 的表通过 \u003ccode\u003eALTER TABLE ... INHERIT\u003c/code\u003e 关联到带 OID 的父表时 OID 列的处理（Amit Langote）\n     \u003c/p\u003e\u003cp\u003e      这种情况下 OID 列应当与普通用户列同等对待，但没有，导致之后继承更改中的奇怪行为。\n     \u003c/p\u003e","id":"9.2.20-d9386a2270ac8ee4","identity_text":"Fix processing of OID column when a table with OIDs is associated to a parent with OIDs via ALTER TABLE ... INHERIT (Amit Langote) The OID column should be treated the same as regular user columns in this case, but it wasn't, leading to odd behavior in later inheritance changes.","part":"changes","patch_ids":[],"related_changes":[{"db_id":"b201bab401077b935165ebdbe790f99a","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"f9909ddbd3811671fd05a401895b23c661302c7cb8a114ceae1c0d4f32e8aa03"},"kind":"equivalent","label":"9.6.2","source_url":"/docs/release/9.6.2/#id-1.11.6.27.5","title":"修复带 OID 的表通过 ALTER TABLE ... INHERIT 关联到带 OID 的父表时 OID 列的处理","url":"/docs/compare/?release=9.6.2#9.6.2-d9386a2270ac8ee4","version":"9.6.2"},{"db_id":"1b04a4ada89a2013f7e6daf82f89be94","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"f9909ddbd3811671fd05a401895b23c661302c7cb8a114ceae1c0d4f32e8aa03"},"kind":"equivalent","label":"9.5.6","source_url":"/docs/release/9.5.6/#id-1.11.6.24.5","title":"修复带 OID 的表通过 ALTER TABLE ... INHERIT 关联到带 OID 的父表时 OID 列的处理","url":"/docs/compare/?release=9.5.6#9.5.6-d9386a2270ac8ee4","version":"9.5.6"},{"db_id":"bddd782ba9be3b76ffb0d6bee3de9080","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"f9909ddbd3811671fd05a401895b23c661302c7cb8a114ceae1c0d4f32e8aa03"},"kind":"equivalent","label":"9.4.11","source_url":"/docs/release/9.4.11/#id-1.11.6.20.5","title":"修复带 OID 的表通过 ALTER TABLE ... INHERIT 关联到带 OID 的父表时 OID 列的处理","url":"/docs/compare/?release=9.4.11#9.4.11-d9386a2270ac8ee4","version":"9.4.11"},{"db_id":"7187dd1d1fef7844008f543688191aab","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"f9909ddbd3811671fd05a401895b23c661302c7cb8a114ceae1c0d4f32e8aa03"},"kind":"equivalent","label":"9.3.16","source_url":"/docs/release/9.3.16/#id-1.11.6.14.5","title":"修复带 OID 的表通过 ALTER TABLE ... INHERIT 关联到带 OID 的父表时 OID 列的处理","url":"/docs/compare/?release=9.3.16#9.3.16-d9386a2270ac8ee4","version":"9.3.16"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"f9909ddbd3811671fd05a401895b23c661302c7cb8a114ceae1c0d4f32e8aa03"},"rule":2,"target":"1b04a4ada89a2013f7e6daf82f89be94","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"f9909ddbd3811671fd05a401895b23c661302c7cb8a114ceae1c0d4f32e8aa03"},"rule":2,"target":"7187dd1d1fef7844008f543688191aab","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"f9909ddbd3811671fd05a401895b23c661302c7cb8a114ceae1c0d4f32e8aa03"},"rule":2,"target":"b201bab401077b935165ebdbe790f99a","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"f9909ddbd3811671fd05a401895b23c661302c7cb8a114ceae1c0d4f32e8aa03"},"rule":2,"target":"bddd782ba9be3b76ffb0d6bee3de9080","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.20/changes/010","source_hash":"f10c36b2b95b0c3986e8c118939cbb18ea4929afdf92b665338f82518980ccb1","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"f9909ddbd3811671fd05a401895b23c661302c7cb8a114ceae1c0d4f32e8aa03","text":"修复带 OID 的表通过 ALTER TABLE ... INHERIT 关联到带 OID 的父表时 OID 列的处理（Amit Langote） 这种情况下 OID 列应当与普通用户列同等对待，但没有，导致之后继承更改中的奇怪行为。","title":"修复带 OID 的表通过 ALTER TABLE ... INHERIT 关联到带 OID 的父表时 OID 列的处理","variants":[],"version":"9.2.20"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"3608fee921876dfcd7e8c9d523aeca81","html":"\u003cp\u003e      在报告约束违反失败之前检查可序列化冲突（Thomas Munro）\n     \u003c/p\u003e\u003cp\u003e      使用可序列化事务隔离时，希望任何因并发事务导致的错误都表现为序列化失败，从而提示应用重试可能成功。不幸的是，对并发插入导致的重复键失败这不能可靠发生。此更改确保如果应用在事务中早些时候显式检查过冲突键的存在（且未找到），这种错误将被报告为序列化错误。\n     \u003c/p\u003e","id":"9.2.20-e359b3a2f8957717","identity_text":"Check for serializability conflicts before reporting constraint-violation failures (Thomas Munro) When using serializable transaction isolation, it is desirable that any error due to concurrent transactions should manifest as a serialization failure, thereby cueing the application that a retry might succeed. Unfortunately, this does not reliably happen for duplicate-key failures caused by concurrent insertions. This change ensures that such an error will be reported as a serialization error if the application explicitly checked for the presence of a conflicting key (and did not find it) earlier in the transaction.","part":"changes","patch_ids":[],"related_changes":[{"db_id":"4d63bb02b1af635fed27372e121b41c5","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"7b9b2c500fbdea8d99ce0b203d2a1adb8acb559963c6f180422d3b31173803ba"},"kind":"equivalent","label":"9.5.6","source_url":"/docs/release/9.5.6/#id-1.11.6.24.5","title":"在报告约束违反失败之前检查可序列化冲突","url":"/docs/compare/?release=9.5.6#9.5.6-e359b3a2f8957717","version":"9.5.6"},{"db_id":"008dbfc76ffd89bfe151accb80c7bb3d","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"7b9b2c500fbdea8d99ce0b203d2a1adb8acb559963c6f180422d3b31173803ba"},"kind":"equivalent","label":"9.4.11","source_url":"/docs/release/9.4.11/#id-1.11.6.20.5","title":"在报告约束违反失败之前检查可序列化冲突","url":"/docs/compare/?release=9.4.11#9.4.11-e359b3a2f8957717","version":"9.4.11"},{"db_id":"a7fe2494ccb82bbd660a301b0082de85","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"7b9b2c500fbdea8d99ce0b203d2a1adb8acb559963c6f180422d3b31173803ba"},"kind":"equivalent","label":"9.3.16","source_url":"/docs/release/9.3.16/#id-1.11.6.14.5","title":"在报告约束违反失败之前检查可序列化冲突","url":"/docs/compare/?release=9.3.16#9.3.16-e359b3a2f8957717","version":"9.3.16"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"7b9b2c500fbdea8d99ce0b203d2a1adb8acb559963c6f180422d3b31173803ba"},"rule":2,"target":"008dbfc76ffd89bfe151accb80c7bb3d","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"7b9b2c500fbdea8d99ce0b203d2a1adb8acb559963c6f180422d3b31173803ba"},"rule":2,"target":"4d63bb02b1af635fed27372e121b41c5","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"7b9b2c500fbdea8d99ce0b203d2a1adb8acb559963c6f180422d3b31173803ba"},"rule":2,"target":"a7fe2494ccb82bbd660a301b0082de85","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.20/changes/011","source_hash":"49baab87887a51c31854b0157fd4c79806246871f02340aacdcca014a193210b","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"7b9b2c500fbdea8d99ce0b203d2a1adb8acb559963c6f180422d3b31173803ba","text":"在报告约束违反失败之前检查可序列化冲突（Thomas Munro） 使用可序列化事务隔离时，希望任何因并发事务导致的错误都表现为序列化失败，从而提示应用重试可能成功。不幸的是，对并发插入导致的重复键失败这不能可靠发生。此更改确保如果应用在事务中早些时候显式检查过冲突键的存在（且未找到），这种错误将被报告为序列化错误。","title":"在报告约束违反失败之前检查可序列化冲突","variants":[],"version":"9.2.20"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"2aeff17dc6647c2d1a2ad0dd3f2c66c5","html":"\u003cp\u003e      确保多行 \u003ccode\u003eVALUES\u003c/code\u003e 构造的列 typmod 被准确确定（Tom Lane）\n     \u003c/p\u003e\u003cp\u003e      这修复了列的第一个值有可确定的 typmod（如 \u003ccode\u003evarchar\u003c/code\u003e 值的长度）但后面的值不共享同一限制时发生的问题。\n     \u003c/p\u003e","id":"9.2.20-1a59df5e0457650c","identity_text":"Ensure that column typmods are determined accurately for multi-row VALUES constructs (Tom Lane) This fixes problems occurring when the first value in a column has a determinable typmod (e.g., length for a varchar value) but later values don't share the same limit.","part":"changes","patch_ids":[],"related_changes":[{"db_id":"be57f1e4a79a11465f1a7d407d68c2df","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"ac965dfb5872115ef803cac9c64e4d2c31e3c10941e2b46ccc8b4592c8f1ca0d"},"kind":"equivalent","label":"9.6.2","source_url":"/docs/release/9.6.2/#id-1.11.6.27.5","title":"确保多行 VALUES 构造的列 typmod 被准确确定","url":"/docs/compare/?release=9.6.2#9.6.2-1a59df5e0457650c","version":"9.6.2"},{"db_id":"07d63ba33c77c1124b368f5d69c3ae8e","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"ac965dfb5872115ef803cac9c64e4d2c31e3c10941e2b46ccc8b4592c8f1ca0d"},"kind":"equivalent","label":"9.5.6","source_url":"/docs/release/9.5.6/#id-1.11.6.24.5","title":"确保多行 VALUES 构造的列 typmod 被准确确定","url":"/docs/compare/?release=9.5.6#9.5.6-1a59df5e0457650c","version":"9.5.6"},{"db_id":"b88d2f5af913237effe99220b3d82494","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"ac965dfb5872115ef803cac9c64e4d2c31e3c10941e2b46ccc8b4592c8f1ca0d"},"kind":"equivalent","label":"9.4.11","source_url":"/docs/release/9.4.11/#id-1.11.6.20.5","title":"确保多行 VALUES 构造的列 typmod 被准确确定","url":"/docs/compare/?release=9.4.11#9.4.11-1a59df5e0457650c","version":"9.4.11"},{"db_id":"005b71ae9dbe2bb708300e53c6fe3b79","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"ac965dfb5872115ef803cac9c64e4d2c31e3c10941e2b46ccc8b4592c8f1ca0d"},"kind":"equivalent","label":"9.3.16","source_url":"/docs/release/9.3.16/#id-1.11.6.14.5","title":"确保多行 VALUES 构造的列 typmod 被准确确定","url":"/docs/compare/?release=9.3.16#9.3.16-1a59df5e0457650c","version":"9.3.16"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"ac965dfb5872115ef803cac9c64e4d2c31e3c10941e2b46ccc8b4592c8f1ca0d"},"rule":2,"target":"005b71ae9dbe2bb708300e53c6fe3b79","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"ac965dfb5872115ef803cac9c64e4d2c31e3c10941e2b46ccc8b4592c8f1ca0d"},"rule":2,"target":"07d63ba33c77c1124b368f5d69c3ae8e","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"ac965dfb5872115ef803cac9c64e4d2c31e3c10941e2b46ccc8b4592c8f1ca0d"},"rule":2,"target":"b88d2f5af913237effe99220b3d82494","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"ac965dfb5872115ef803cac9c64e4d2c31e3c10941e2b46ccc8b4592c8f1ca0d"},"rule":2,"target":"be57f1e4a79a11465f1a7d407d68c2df","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.20/changes/012","source_hash":"b51fe756e68aa6a36ab96cb222101f6d9113068705a3cc87b5d3ef10cdaa1f68","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"ac965dfb5872115ef803cac9c64e4d2c31e3c10941e2b46ccc8b4592c8f1ca0d","text":"确保多行 VALUES 构造的列 typmod 被准确确定（Tom Lane） 这修复了列的第一个值有可确定的 typmod（如 varchar 值的长度）但后面的值不共享同一限制时发生的问题。","title":"确保多行 VALUES 构造的列 typmod 被准确确定","variants":[],"version":"9.2.20"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"3d48dead07b652756096d4f0d993e12c","html":"\u003cp\u003e      对 Unicode 字符串末尾未完成的 Unicode 代理项对抛出错误（Tom Lane）\n     \u003c/p\u003e\u003cp\u003e      通常 Unicode 代理项前导字符后面必须跟 Unicode 代理项后随字符，但当前导字符是 Unicode 字符串字面量（\u003ccode\u003eU\u0026amp;'...'\u003c/code\u003e）或 Unicode 标识符（\u003ccode\u003eU\u0026amp;\"...\"\u003c/code\u003e）的最后一个字符时漏掉了这一检查。\n     \u003c/p\u003e","id":"9.2.20-3d086ae0cc351d15","identity_text":"Throw error for an unfinished Unicode surrogate pair at the end of a Unicode string (Tom Lane) Normally, a Unicode surrogate leading character must be followed by a Unicode surrogate trailing character, but the check for this was missed if the leading character was the last character in a Unicode string literal (U\u0026'...') or Unicode identifier (U\u0026\"...\").","part":"changes","patch_ids":[],"related_changes":[{"db_id":"a93421ec62e45ab76ef7ca68cc99ccdc","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"8f66c6edd4cde5687faada1346e7f235d3fe5f3cab11441841838ea8f995fa81"},"kind":"equivalent","label":"9.6.2","source_url":"/docs/release/9.6.2/#id-1.11.6.27.5","title":"对 Unicode 字符串末尾未完成的 Unicode 代理项对抛出错误","url":"/docs/compare/?release=9.6.2#9.6.2-3d086ae0cc351d15","version":"9.6.2"},{"db_id":"475b9ac6145d6cf05b60d1454777cb98","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"8f66c6edd4cde5687faada1346e7f235d3fe5f3cab11441841838ea8f995fa81"},"kind":"equivalent","label":"9.5.6","source_url":"/docs/release/9.5.6/#id-1.11.6.24.5","title":"对 Unicode 字符串末尾未完成的 Unicode 代理项对抛出错误","url":"/docs/compare/?release=9.5.6#9.5.6-3d086ae0cc351d15","version":"9.5.6"},{"db_id":"d0789e2d0f8c7d3c2f58a565ec63d22f","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"8f66c6edd4cde5687faada1346e7f235d3fe5f3cab11441841838ea8f995fa81"},"kind":"equivalent","label":"9.4.11","source_url":"/docs/release/9.4.11/#id-1.11.6.20.5","title":"对 Unicode 字符串末尾未完成的 Unicode 代理项对抛出错误","url":"/docs/compare/?release=9.4.11#9.4.11-3d086ae0cc351d15","version":"9.4.11"},{"db_id":"0608db3962143d173e4e8107a654548b","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"8f66c6edd4cde5687faada1346e7f235d3fe5f3cab11441841838ea8f995fa81"},"kind":"equivalent","label":"9.3.16","source_url":"/docs/release/9.3.16/#id-1.11.6.14.5","title":"对 Unicode 字符串末尾未完成的 Unicode 代理项对抛出错误","url":"/docs/compare/?release=9.3.16#9.3.16-3d086ae0cc351d15","version":"9.3.16"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"8f66c6edd4cde5687faada1346e7f235d3fe5f3cab11441841838ea8f995fa81"},"rule":2,"target":"0608db3962143d173e4e8107a654548b","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"8f66c6edd4cde5687faada1346e7f235d3fe5f3cab11441841838ea8f995fa81"},"rule":2,"target":"475b9ac6145d6cf05b60d1454777cb98","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"8f66c6edd4cde5687faada1346e7f235d3fe5f3cab11441841838ea8f995fa81"},"rule":2,"target":"a93421ec62e45ab76ef7ca68cc99ccdc","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"8f66c6edd4cde5687faada1346e7f235d3fe5f3cab11441841838ea8f995fa81"},"rule":2,"target":"d0789e2d0f8c7d3c2f58a565ec63d22f","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.20/changes/013","source_hash":"a18f0af5af415387375b78790b8b9fac3a75953e6974f43f380acbb1fc7689b5","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"8f66c6edd4cde5687faada1346e7f235d3fe5f3cab11441841838ea8f995fa81","text":"对 Unicode 字符串末尾未完成的 Unicode 代理项对抛出错误（Tom Lane） 通常 Unicode 代理项前导字符后面必须跟 Unicode 代理项后随字符，但当前导字符是 Unicode 字符串字面量（U\u0026'...'）或 Unicode 标识符（U\u0026\"...\"）的最后一个字符时漏掉了这一检查。","title":"对 Unicode 字符串末尾未完成的 Unicode 代理项对抛出错误","variants":[],"version":"9.2.20"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"3769e34a099b693920b472acbff9dc60","html":"\u003cp\u003e      确保纯否定的文本搜索查询（如 \u003ccode\u003e!foo\u003c/code\u003e）匹配空的\n      \u003ccode\u003etsvector\u003c/code\u003e（Tom Dunstan）\n     \u003c/p\u003e\u003cp\u003e      GIN 索引搜索能找到这种匹配，但顺序扫描或 GiST 索引搜索不能。\n     \u003c/p\u003e","id":"9.2.20-eff451e7b360abcb","identity_text":"Ensure that a purely negative text search query, such as !foo, matches empty tsvectors (Tom Dunstan) Such matches were found by GIN index searches, but not by sequential scans or GiST index searches.","part":"changes","patch_ids":[],"related_changes":[{"db_id":"5d9ac0edd48483c5563e2aef60ce8772","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"ad6cd6ad5ee8954233b8ae0f0bddcc1aee2a997ffbaac9ce1b95d49443d52963"},"kind":"equivalent","label":"9.6.2","source_url":"/docs/release/9.6.2/#id-1.11.6.27.5","title":"确保纯否定的文本搜索查询（如 !foo）匹配空的 tsvector","url":"/docs/compare/?release=9.6.2#9.6.2-eff451e7b360abcb","version":"9.6.2"},{"db_id":"fbbd8a5fd39ea048ef38e6f0b26b5dbe","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"ad6cd6ad5ee8954233b8ae0f0bddcc1aee2a997ffbaac9ce1b95d49443d52963"},"kind":"equivalent","label":"9.5.6","source_url":"/docs/release/9.5.6/#id-1.11.6.24.5","title":"确保纯否定的文本搜索查询（如 !foo）匹配空的 tsvector","url":"/docs/compare/?release=9.5.6#9.5.6-eff451e7b360abcb","version":"9.5.6"},{"db_id":"aba27986be457da4c9701e00d01bbc3c","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"ad6cd6ad5ee8954233b8ae0f0bddcc1aee2a997ffbaac9ce1b95d49443d52963"},"kind":"equivalent","label":"9.4.11","source_url":"/docs/release/9.4.11/#id-1.11.6.20.5","title":"确保纯否定的文本搜索查询（如 !foo）匹配空的 tsvector","url":"/docs/compare/?release=9.4.11#9.4.11-eff451e7b360abcb","version":"9.4.11"},{"db_id":"0b7a8b19196658117104bc98cf22fc01","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"ad6cd6ad5ee8954233b8ae0f0bddcc1aee2a997ffbaac9ce1b95d49443d52963"},"kind":"equivalent","label":"9.3.16","source_url":"/docs/release/9.3.16/#id-1.11.6.14.5","title":"确保纯否定的文本搜索查询（如 !foo）匹配空的 tsvector","url":"/docs/compare/?release=9.3.16#9.3.16-eff451e7b360abcb","version":"9.3.16"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"ad6cd6ad5ee8954233b8ae0f0bddcc1aee2a997ffbaac9ce1b95d49443d52963"},"rule":2,"target":"0b7a8b19196658117104bc98cf22fc01","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"ad6cd6ad5ee8954233b8ae0f0bddcc1aee2a997ffbaac9ce1b95d49443d52963"},"rule":2,"target":"5d9ac0edd48483c5563e2aef60ce8772","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"ad6cd6ad5ee8954233b8ae0f0bddcc1aee2a997ffbaac9ce1b95d49443d52963"},"rule":2,"target":"aba27986be457da4c9701e00d01bbc3c","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"ad6cd6ad5ee8954233b8ae0f0bddcc1aee2a997ffbaac9ce1b95d49443d52963"},"rule":2,"target":"fbbd8a5fd39ea048ef38e6f0b26b5dbe","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.20/changes/014","source_hash":"1b4ba8ed467313aad3292e59c07580aa0a7a1758ec7ee6d7057bebdcc27d157d","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"ad6cd6ad5ee8954233b8ae0f0bddcc1aee2a997ffbaac9ce1b95d49443d52963","text":"确保纯否定的文本搜索查询（如 !foo）匹配空的 tsvector（Tom Dunstan） GIN 索引搜索能找到这种匹配，但顺序扫描或 GiST 索引搜索不能。","title":"确保纯否定的文本搜索查询（如 !foo）匹配空的 tsvector","variants":[],"version":"9.2.20"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"3e2d55ea9ee221b83b420165e030a10a","html":"\u003cp\u003e      防止 \u003ccode\u003ets_rewrite()\u003c/code\u003e 用空查询替换非顶层子树时崩溃（Artur Zakirov）\n     \u003c/p\u003e","id":"9.2.20-1b733fffaed0caf4","identity_text":"Prevent crash when ts_rewrite() replaces a non-top-level subtree with an empty query (Artur Zakirov)","part":"changes","patch_ids":[],"related_changes":[{"db_id":"1ad120bd822b42e5ce4decf1901d8154","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"69e51969a7a4e690ce4b7f629e2b814b2017844a53bc1112d03d60fbf86fa006"},"kind":"equivalent","label":"9.6.2","source_url":"/docs/release/9.6.2/#id-1.11.6.27.5","title":"防止 ts_rewrite() 用空查询替换非顶层子树时崩溃","url":"/docs/compare/?release=9.6.2#9.6.2-1b733fffaed0caf4","version":"9.6.2"},{"db_id":"a636489603d1cbf480e8bbd749c75c94","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"69e51969a7a4e690ce4b7f629e2b814b2017844a53bc1112d03d60fbf86fa006"},"kind":"equivalent","label":"9.5.6","source_url":"/docs/release/9.5.6/#id-1.11.6.24.5","title":"防止 ts_rewrite() 用空查询替换非顶层子树时崩溃","url":"/docs/compare/?release=9.5.6#9.5.6-1b733fffaed0caf4","version":"9.5.6"},{"db_id":"2df43244e2125ac7b6bf7ca7cebeceee","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"69e51969a7a4e690ce4b7f629e2b814b2017844a53bc1112d03d60fbf86fa006"},"kind":"equivalent","label":"9.4.11","source_url":"/docs/release/9.4.11/#id-1.11.6.20.5","title":"防止 ts_rewrite() 用空查询替换非顶层子树时崩溃","url":"/docs/compare/?release=9.4.11#9.4.11-1b733fffaed0caf4","version":"9.4.11"},{"db_id":"d6c330345c9debe55108886fee1afad3","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"69e51969a7a4e690ce4b7f629e2b814b2017844a53bc1112d03d60fbf86fa006"},"kind":"equivalent","label":"9.3.16","source_url":"/docs/release/9.3.16/#id-1.11.6.14.5","title":"防止 ts_rewrite() 用空查询替换非顶层子树时崩溃","url":"/docs/compare/?release=9.3.16#9.3.16-1b733fffaed0caf4","version":"9.3.16"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"69e51969a7a4e690ce4b7f629e2b814b2017844a53bc1112d03d60fbf86fa006"},"rule":2,"target":"1ad120bd822b42e5ce4decf1901d8154","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"69e51969a7a4e690ce4b7f629e2b814b2017844a53bc1112d03d60fbf86fa006"},"rule":2,"target":"2df43244e2125ac7b6bf7ca7cebeceee","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"69e51969a7a4e690ce4b7f629e2b814b2017844a53bc1112d03d60fbf86fa006"},"rule":2,"target":"a636489603d1cbf480e8bbd749c75c94","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"69e51969a7a4e690ce4b7f629e2b814b2017844a53bc1112d03d60fbf86fa006"},"rule":2,"target":"d6c330345c9debe55108886fee1afad3","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.20/changes/015","source_hash":"b368cf47c6c67d9a7ae385d45e5565d1774a7395dfbd64cd1fb9204361aad4a2","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"69e51969a7a4e690ce4b7f629e2b814b2017844a53bc1112d03d60fbf86fa006","text":"防止 ts_rewrite() 用空查询替换非顶层子树时崩溃（Artur Zakirov）","title":"防止 ts_rewrite() 用空查询替换非顶层子树时崩溃","variants":[],"version":"9.2.20"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"1f5824f69393d547f3375c08032a9e07","html":"\u003cp\u003e      修复 \u003ccode\u003ets_rewrite()\u003c/code\u003e 的性能问题（Tom Lane）\n     \u003c/p\u003e","id":"9.2.20-46a730393b762f11","identity_text":"Fix performance problems in ts_rewrite() (Tom Lane)","part":"changes","patch_ids":[],"related_changes":[{"db_id":"b48a6e714c9918aceca947ccd0094617","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"c4afeed2b20915c8ae62a504975ed28217cbf578c3fad53bbd712d65d25dfbe1"},"kind":"equivalent","label":"9.6.2","source_url":"/docs/release/9.6.2/#id-1.11.6.27.5","title":"修复 ts_rewrite() 的性能问题","url":"/docs/compare/?release=9.6.2#9.6.2-46a730393b762f11","version":"9.6.2"},{"db_id":"6c3e04dad251af4d71379579d3d357e8","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"c4afeed2b20915c8ae62a504975ed28217cbf578c3fad53bbd712d65d25dfbe1"},"kind":"equivalent","label":"9.5.6","source_url":"/docs/release/9.5.6/#id-1.11.6.24.5","title":"修复 ts_rewrite() 的性能问题","url":"/docs/compare/?release=9.5.6#9.5.6-46a730393b762f11","version":"9.5.6"},{"db_id":"aedb568933d91d1c73c63db3629de155","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"c4afeed2b20915c8ae62a504975ed28217cbf578c3fad53bbd712d65d25dfbe1"},"kind":"equivalent","label":"9.4.11","source_url":"/docs/release/9.4.11/#id-1.11.6.20.5","title":"修复 ts_rewrite() 的性能问题","url":"/docs/compare/?release=9.4.11#9.4.11-46a730393b762f11","version":"9.4.11"},{"db_id":"7c9d5ec604ecf94f33a79a9602c27a17","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"c4afeed2b20915c8ae62a504975ed28217cbf578c3fad53bbd712d65d25dfbe1"},"kind":"equivalent","label":"9.3.16","source_url":"/docs/release/9.3.16/#id-1.11.6.14.5","title":"修复 ts_rewrite() 的性能问题","url":"/docs/compare/?release=9.3.16#9.3.16-46a730393b762f11","version":"9.3.16"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"c4afeed2b20915c8ae62a504975ed28217cbf578c3fad53bbd712d65d25dfbe1"},"rule":2,"target":"6c3e04dad251af4d71379579d3d357e8","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"c4afeed2b20915c8ae62a504975ed28217cbf578c3fad53bbd712d65d25dfbe1"},"rule":2,"target":"7c9d5ec604ecf94f33a79a9602c27a17","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"c4afeed2b20915c8ae62a504975ed28217cbf578c3fad53bbd712d65d25dfbe1"},"rule":2,"target":"aedb568933d91d1c73c63db3629de155","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"c4afeed2b20915c8ae62a504975ed28217cbf578c3fad53bbd712d65d25dfbe1"},"rule":2,"target":"b48a6e714c9918aceca947ccd0094617","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.20/changes/016","source_hash":"f9028d96a9fb25653692ed10f191f494884186fcc2669c96804e996abc543079","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"c4afeed2b20915c8ae62a504975ed28217cbf578c3fad53bbd712d65d25dfbe1","text":"修复 ts_rewrite() 的性能问题（Tom Lane）","title":"修复 ts_rewrite() 的性能问题","variants":[],"version":"9.2.20"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"103c4627f3d335c63cfaf9772d07be58","html":"\u003cp\u003e      修复 \u003ccode\u003ets_rewrite()\u003c/code\u003e 对嵌套 NOT 操作符的处理（Tom Lane）\n     \u003c/p\u003e","id":"9.2.20-96f8b0ba7bf5c9fa","identity_text":"Fix ts_rewrite()'s handling of nested NOT operators (Tom Lane)","part":"changes","patch_ids":[],"related_changes":[{"db_id":"1955174329b5ccdb9c211201d0b4c59d","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"048542196eff719f65d7460633977e03267fcf45b2c4e592da8e68cc2f2d63d0"},"kind":"equivalent","label":"9.6.2","source_url":"/docs/release/9.6.2/#id-1.11.6.27.5","title":"修复 ts_rewrite() 对嵌套 NOT 操作符的处理","url":"/docs/compare/?release=9.6.2#9.6.2-96f8b0ba7bf5c9fa","version":"9.6.2"},{"db_id":"7dcfada5b7da833763dbaaac496f5553","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"048542196eff719f65d7460633977e03267fcf45b2c4e592da8e68cc2f2d63d0"},"kind":"equivalent","label":"9.5.6","source_url":"/docs/release/9.5.6/#id-1.11.6.24.5","title":"修复 ts_rewrite() 对嵌套 NOT 操作符的处理","url":"/docs/compare/?release=9.5.6#9.5.6-96f8b0ba7bf5c9fa","version":"9.5.6"},{"db_id":"d159053347d63c8729260287facb7141","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"048542196eff719f65d7460633977e03267fcf45b2c4e592da8e68cc2f2d63d0"},"kind":"equivalent","label":"9.4.11","source_url":"/docs/release/9.4.11/#id-1.11.6.20.5","title":"修复 ts_rewrite() 对嵌套 NOT 操作符的处理","url":"/docs/compare/?release=9.4.11#9.4.11-96f8b0ba7bf5c9fa","version":"9.4.11"},{"db_id":"dedf4985fd71589c29886993b02e9ad5","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"048542196eff719f65d7460633977e03267fcf45b2c4e592da8e68cc2f2d63d0"},"kind":"equivalent","label":"9.3.16","source_url":"/docs/release/9.3.16/#id-1.11.6.14.5","title":"修复 ts_rewrite() 对嵌套 NOT 操作符的处理","url":"/docs/compare/?release=9.3.16#9.3.16-96f8b0ba7bf5c9fa","version":"9.3.16"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"048542196eff719f65d7460633977e03267fcf45b2c4e592da8e68cc2f2d63d0"},"rule":2,"target":"1955174329b5ccdb9c211201d0b4c59d","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"048542196eff719f65d7460633977e03267fcf45b2c4e592da8e68cc2f2d63d0"},"rule":2,"target":"7dcfada5b7da833763dbaaac496f5553","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"048542196eff719f65d7460633977e03267fcf45b2c4e592da8e68cc2f2d63d0"},"rule":2,"target":"d159053347d63c8729260287facb7141","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"048542196eff719f65d7460633977e03267fcf45b2c4e592da8e68cc2f2d63d0"},"rule":2,"target":"dedf4985fd71589c29886993b02e9ad5","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.20/changes/017","source_hash":"623af3c2e128a62397d4e5f61ff1c47844f4ed4e4ded512cf8b4e1d1be4c0028","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"048542196eff719f65d7460633977e03267fcf45b2c4e592da8e68cc2f2d63d0","text":"修复 ts_rewrite() 对嵌套 NOT 操作符的处理（Tom Lane）","title":"修复 ts_rewrite() 对嵌套 NOT 操作符的处理","variants":[],"version":"9.2.20"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"df786aaf54cc17fb935820452a2c7724","html":"\u003cp\u003e      修复 \u003ccode\u003earray_fill()\u003c/code\u003e 正确处理空数组（Tom Lane）\n     \u003c/p\u003e","id":"9.2.20-11a92e5c26f1b0f5","identity_text":"Fix array_fill() to handle empty arrays properly (Tom Lane)","part":"changes","patch_ids":[],"related_changes":[{"db_id":"8b998e09fa39e92645bf76cf7654e7cd","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"3fbe337ff90368d1b7a4b6a07de5f190a370a8c6a63528086d992cbc05fff6ac"},"kind":"equivalent","label":"9.6.2","source_url":"/docs/release/9.6.2/#id-1.11.6.27.5","title":"修复 array_fill() 正确处理空数组","url":"/docs/compare/?release=9.6.2#9.6.2-11a92e5c26f1b0f5","version":"9.6.2"},{"db_id":"b42a04eefcfe8f30ea47c10da25f4d61","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"3fbe337ff90368d1b7a4b6a07de5f190a370a8c6a63528086d992cbc05fff6ac"},"kind":"equivalent","label":"9.5.6","source_url":"/docs/release/9.5.6/#id-1.11.6.24.5","title":"修复 array_fill() 正确处理空数组","url":"/docs/compare/?release=9.5.6#9.5.6-11a92e5c26f1b0f5","version":"9.5.6"},{"db_id":"86f4f8f81874a3056f1fa1b714aadf62","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"3fbe337ff90368d1b7a4b6a07de5f190a370a8c6a63528086d992cbc05fff6ac"},"kind":"equivalent","label":"9.4.11","source_url":"/docs/release/9.4.11/#id-1.11.6.20.5","title":"修复 array_fill() 正确处理空数组","url":"/docs/compare/?release=9.4.11#9.4.11-11a92e5c26f1b0f5","version":"9.4.11"},{"db_id":"3bc26bda247376a0b791a32215b0d4e3","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"3fbe337ff90368d1b7a4b6a07de5f190a370a8c6a63528086d992cbc05fff6ac"},"kind":"equivalent","label":"9.3.16","source_url":"/docs/release/9.3.16/#id-1.11.6.14.5","title":"修复 array_fill() 正确处理空数组","url":"/docs/compare/?release=9.3.16#9.3.16-11a92e5c26f1b0f5","version":"9.3.16"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"3fbe337ff90368d1b7a4b6a07de5f190a370a8c6a63528086d992cbc05fff6ac"},"rule":2,"target":"3bc26bda247376a0b791a32215b0d4e3","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"3fbe337ff90368d1b7a4b6a07de5f190a370a8c6a63528086d992cbc05fff6ac"},"rule":2,"target":"86f4f8f81874a3056f1fa1b714aadf62","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"3fbe337ff90368d1b7a4b6a07de5f190a370a8c6a63528086d992cbc05fff6ac"},"rule":2,"target":"8b998e09fa39e92645bf76cf7654e7cd","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"3fbe337ff90368d1b7a4b6a07de5f190a370a8c6a63528086d992cbc05fff6ac"},"rule":2,"target":"b42a04eefcfe8f30ea47c10da25f4d61","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.20/changes/018","source_hash":"387dd89197937fbed731a3d4837449186db6ec2e30d97223ec5c37ceba98fe88","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"3fbe337ff90368d1b7a4b6a07de5f190a370a8c6a63528086d992cbc05fff6ac","text":"修复 array_fill() 正确处理空数组（Tom Lane）","title":"修复 array_fill() 正确处理空数组","variants":[],"version":"9.2.20"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"ee3ffeab5f1f036a7d5faeb3a592b9da","html":"\u003cp\u003e      修复 \u003ccode\u003equote_literal_cstr()\u003c/code\u003e 中的一字节缓冲区越界（Heikki Linnakangas）\n     \u003c/p\u003e\u003cp\u003e      只有当输入完全由单引号和/或反斜线组成时才会发生越界。\n     \u003c/p\u003e","id":"9.2.20-5116023449e8f470","identity_text":"Fix one-byte buffer overrun in quote_literal_cstr() (Heikki Linnakangas) The overrun occurred only if the input consisted entirely of single quotes and/or backslashes.","part":"changes","patch_ids":[],"related_changes":[{"db_id":"ca1e35c79adeabc54efc1d6777143db9","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"c815ad152600ce400500d2b6904c02a8f1e2aabaeea8e95e370685bd580c3363"},"kind":"equivalent","label":"9.6.2","source_url":"/docs/release/9.6.2/#id-1.11.6.27.5","title":"修复 quote_literal_cstr() 中的一字节缓冲区越界","url":"/docs/compare/?release=9.6.2#9.6.2-5116023449e8f470","version":"9.6.2"},{"db_id":"10a5bbcfd71d433423afebd1522c42b9","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"c815ad152600ce400500d2b6904c02a8f1e2aabaeea8e95e370685bd580c3363"},"kind":"equivalent","label":"9.5.6","source_url":"/docs/release/9.5.6/#id-1.11.6.24.5","title":"修复 quote_literal_cstr() 中的一字节缓冲区越界","url":"/docs/compare/?release=9.5.6#9.5.6-5116023449e8f470","version":"9.5.6"},{"db_id":"cac299f1d0f8356d356789ac772e0acc","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"c815ad152600ce400500d2b6904c02a8f1e2aabaeea8e95e370685bd580c3363"},"kind":"equivalent","label":"9.4.11","source_url":"/docs/release/9.4.11/#id-1.11.6.20.5","title":"修复 quote_literal_cstr() 中的一字节缓冲区越界","url":"/docs/compare/?release=9.4.11#9.4.11-5116023449e8f470","version":"9.4.11"},{"db_id":"1207f1dadef5930c562a950286517ce1","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"c815ad152600ce400500d2b6904c02a8f1e2aabaeea8e95e370685bd580c3363"},"kind":"equivalent","label":"9.3.16","source_url":"/docs/release/9.3.16/#id-1.11.6.14.5","title":"修复 quote_literal_cstr() 中的一字节缓冲区越界","url":"/docs/compare/?release=9.3.16#9.3.16-5116023449e8f470","version":"9.3.16"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"c815ad152600ce400500d2b6904c02a8f1e2aabaeea8e95e370685bd580c3363"},"rule":2,"target":"10a5bbcfd71d433423afebd1522c42b9","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"c815ad152600ce400500d2b6904c02a8f1e2aabaeea8e95e370685bd580c3363"},"rule":2,"target":"1207f1dadef5930c562a950286517ce1","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"c815ad152600ce400500d2b6904c02a8f1e2aabaeea8e95e370685bd580c3363"},"rule":2,"target":"ca1e35c79adeabc54efc1d6777143db9","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"c815ad152600ce400500d2b6904c02a8f1e2aabaeea8e95e370685bd580c3363"},"rule":2,"target":"cac299f1d0f8356d356789ac772e0acc","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.20/changes/019","source_hash":"aceded027b41a637269de3e5c21831f427b2dd59b1772dbbd4d02e414cc19d05","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"c815ad152600ce400500d2b6904c02a8f1e2aabaeea8e95e370685bd580c3363","text":"修复 quote_literal_cstr() 中的一字节缓冲区越界（Heikki Linnakangas） 只有当输入完全由单引号和/或反斜线组成时才会发生越界。","title":"修复 quote_literal_cstr() 中的一字节缓冲区越界","variants":[],"version":"9.2.20"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"ed7140f1a4fdb9bd4e31465aaaff57b3","html":"\u003cp\u003e      防止 \u003ccode\u003epg_start_backup()\u003c/code\u003e 和\n      \u003ccode\u003epg_stop_backup()\u003c/code\u003e 的多次调用并发运行（Michael Paquier）\n     \u003c/p\u003e\u003cp\u003e      这避免了有人试图并行运行这些函数时的断言失败以及可能更糟的事情。\n     \u003c/p\u003e","id":"9.2.20-ad45c4e99311a5d6","identity_text":"Prevent multiple calls of pg_start_backup() and pg_stop_backup() from running concurrently (Michael Paquier) This avoids an assertion failure, and possibly worse things, if someone tries to run these functions in parallel.","part":"changes","patch_ids":[],"related_changes":[{"db_id":"687224dcab90b5b2af651f8438c6598c","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"ea848ad5b9d054425416fb844da6f44e151cafea9147a25cfbf137582bd57bbf"},"kind":"equivalent","label":"9.6.2","source_url":"/docs/release/9.6.2/#id-1.11.6.27.5","title":"防止 pg_start_backup() 和 pg_stop_backup() 的多次调用并发运行","url":"/docs/compare/?release=9.6.2#9.6.2-ad45c4e99311a5d6","version":"9.6.2"},{"db_id":"1ef018685a9c483cd28f9ca52e3c966a","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"ea848ad5b9d054425416fb844da6f44e151cafea9147a25cfbf137582bd57bbf"},"kind":"equivalent","label":"9.5.6","source_url":"/docs/release/9.5.6/#id-1.11.6.24.5","title":"防止 pg_start_backup() 和 pg_stop_backup() 的多次调用并发运行","url":"/docs/compare/?release=9.5.6#9.5.6-ad45c4e99311a5d6","version":"9.5.6"},{"db_id":"acd2eba3f7197ed9790f383a150768bb","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"ea848ad5b9d054425416fb844da6f44e151cafea9147a25cfbf137582bd57bbf"},"kind":"equivalent","label":"9.4.11","source_url":"/docs/release/9.4.11/#id-1.11.6.20.5","title":"防止 pg_start_backup() 和 pg_stop_backup() 的多次调用并发运行","url":"/docs/compare/?release=9.4.11#9.4.11-ad45c4e99311a5d6","version":"9.4.11"},{"db_id":"23cf73717317ca27a5983c7fcb59cdf5","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"ea848ad5b9d054425416fb844da6f44e151cafea9147a25cfbf137582bd57bbf"},"kind":"equivalent","label":"9.3.16","source_url":"/docs/release/9.3.16/#id-1.11.6.14.5","title":"防止 pg_start_backup() 和 pg_stop_backup() 的多次调用并发运行","url":"/docs/compare/?release=9.3.16#9.3.16-ad45c4e99311a5d6","version":"9.3.16"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"ea848ad5b9d054425416fb844da6f44e151cafea9147a25cfbf137582bd57bbf"},"rule":2,"target":"1ef018685a9c483cd28f9ca52e3c966a","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"ea848ad5b9d054425416fb844da6f44e151cafea9147a25cfbf137582bd57bbf"},"rule":2,"target":"23cf73717317ca27a5983c7fcb59cdf5","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"ea848ad5b9d054425416fb844da6f44e151cafea9147a25cfbf137582bd57bbf"},"rule":2,"target":"687224dcab90b5b2af651f8438c6598c","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"ea848ad5b9d054425416fb844da6f44e151cafea9147a25cfbf137582bd57bbf"},"rule":2,"target":"acd2eba3f7197ed9790f383a150768bb","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.20/changes/020","source_hash":"52de8f36956b2c8e12d200f3ae9af7c2ed26e7d77b6048690940e55fbc93fc4c","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"ea848ad5b9d054425416fb844da6f44e151cafea9147a25cfbf137582bd57bbf","text":"防止 pg_start_backup() 和 pg_stop_backup() 的多次调用并发运行（Michael Paquier） 这避免了有人试图并行运行这些函数时的断言失败以及可能更糟的事情。","title":"防止 pg_start_backup() 和 pg_stop_backup() 的多次调用并发运行","variants":[],"version":"9.2.20"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"22d23dc52cffb0a68ddc7fb66794ed3e","html":"\u003cp\u003e      避免丢弃并非真正无操作的\n      \u003ccode\u003einterval\u003c/code\u003e 到 \u003ccode\u003einterval\u003c/code\u003e 强制转换（Tom Lane）\n     \u003c/p\u003e\u003cp\u003e      某些情况下，本应导致清零低阶 \u003ccode\u003einterval\u003c/code\u003e 字段的强制转换被错误地当作无操作而丢弃。例如从 \u003ccode\u003eINTERVAL MONTH\u003c/code\u003e 转换到 \u003ccode\u003eINTERVAL YEAR\u003c/code\u003e 未能清除月份字段。\n     \u003c/p\u003e","id":"9.2.20-8943a394f75ad1d5","identity_text":"Avoid discarding interval-to-interval casts that aren't really no-ops (Tom Lane) In some cases, a cast that should result in zeroing out low-order interval fields was mistakenly deemed to be a no-op and discarded. An example is that casting from INTERVAL MONTH to INTERVAL YEAR failed to clear the months field.","part":"changes","patch_ids":[],"related_changes":[{"db_id":"e248e2718d6804294de52aff8888e4ac","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"c115167028f4df75e0e2b6b3cdf794502b5e5753b36c6ec9fc95bd344db48ec6"},"kind":"equivalent","label":"9.6.2","source_url":"/docs/release/9.6.2/#id-1.11.6.27.5","title":"避免丢弃并非真正无操作的 interval 到 interval 强制转换","url":"/docs/compare/?release=9.6.2#9.6.2-8943a394f75ad1d5","version":"9.6.2"},{"db_id":"96f623510909436fffafe711bab45701","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"c115167028f4df75e0e2b6b3cdf794502b5e5753b36c6ec9fc95bd344db48ec6"},"kind":"equivalent","label":"9.5.6","source_url":"/docs/release/9.5.6/#id-1.11.6.24.5","title":"避免丢弃并非真正无操作的 interval 到 interval 强制转换","url":"/docs/compare/?release=9.5.6#9.5.6-8943a394f75ad1d5","version":"9.5.6"},{"db_id":"81db7ea24635608650b11971639f5898","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"c115167028f4df75e0e2b6b3cdf794502b5e5753b36c6ec9fc95bd344db48ec6"},"kind":"equivalent","label":"9.4.11","source_url":"/docs/release/9.4.11/#id-1.11.6.20.5","title":"避免丢弃并非真正无操作的 interval 到 interval 强制转换","url":"/docs/compare/?release=9.4.11#9.4.11-8943a394f75ad1d5","version":"9.4.11"},{"db_id":"e198f84900b2693f4096946b7a53bdd1","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"c115167028f4df75e0e2b6b3cdf794502b5e5753b36c6ec9fc95bd344db48ec6"},"kind":"equivalent","label":"9.3.16","source_url":"/docs/release/9.3.16/#id-1.11.6.14.5","title":"避免丢弃并非真正无操作的 interval 到 interval 强制转换","url":"/docs/compare/?release=9.3.16#9.3.16-8943a394f75ad1d5","version":"9.3.16"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"c115167028f4df75e0e2b6b3cdf794502b5e5753b36c6ec9fc95bd344db48ec6"},"rule":2,"target":"81db7ea24635608650b11971639f5898","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"c115167028f4df75e0e2b6b3cdf794502b5e5753b36c6ec9fc95bd344db48ec6"},"rule":2,"target":"96f623510909436fffafe711bab45701","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"c115167028f4df75e0e2b6b3cdf794502b5e5753b36c6ec9fc95bd344db48ec6"},"rule":2,"target":"e198f84900b2693f4096946b7a53bdd1","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"c115167028f4df75e0e2b6b3cdf794502b5e5753b36c6ec9fc95bd344db48ec6"},"rule":2,"target":"e248e2718d6804294de52aff8888e4ac","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.20/changes/021","source_hash":"1df0ed583dfb653fa0fde077401c2f479e8afd1f4f8c5081547b4b1064e52068","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"c115167028f4df75e0e2b6b3cdf794502b5e5753b36c6ec9fc95bd344db48ec6","text":"避免丢弃并非真正无操作的 interval 到 interval 强制转换（Tom Lane） 某些情况下，本应导致清零低阶 interval 字段的强制转换被错误地当作无操作而丢弃。例如从 INTERVAL MONTH 转换到 INTERVAL YEAR 未能清除月份字段。","title":"避免丢弃并非真正无操作的 interval 到 interval 强制转换","variants":[],"version":"9.2.20"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"141e88f49f53e4beac817386630d457f","html":"\u003cp\u003e      修复 \u003cspan\u003epg_dump\u003c/span\u003e 转储使用内建函数的用户定义强制转换和转换（Stephen Frost）\n     \u003c/p\u003e","id":"9.2.20-4fba47bfcb2ec0ac","identity_text":"Fix pg_dump to dump user-defined casts and transforms that use built-in functions (Stephen Frost)","part":"changes","patch_ids":[],"related_changes":[{"db_id":"581a06be52555037f10c237117874cc0","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"2a3aac55e24e54531d0f8a215b0cdefc742a6d9b9211a41a535ece0ea74b9bf4"},"kind":"equivalent","label":"9.6.2","source_url":"/docs/release/9.6.2/#id-1.11.6.27.5","title":"修复 pg_dump 转储使用内建函数的用户定义强制转换和转换","url":"/docs/compare/?release=9.6.2#9.6.2-4fba47bfcb2ec0ac","version":"9.6.2"},{"db_id":"fea8649624e2953332f50903213b1685","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"2a3aac55e24e54531d0f8a215b0cdefc742a6d9b9211a41a535ece0ea74b9bf4"},"kind":"equivalent","label":"9.5.6","source_url":"/docs/release/9.5.6/#id-1.11.6.24.5","title":"修复 pg_dump 转储使用内建函数的用户定义强制转换和转换","url":"/docs/compare/?release=9.5.6#9.5.6-4fba47bfcb2ec0ac","version":"9.5.6"},{"db_id":"1af558f49869195daea66118c0df707f","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"2a3aac55e24e54531d0f8a215b0cdefc742a6d9b9211a41a535ece0ea74b9bf4"},"kind":"equivalent","label":"9.4.11","source_url":"/docs/release/9.4.11/#id-1.11.6.20.5","title":"修复 pg_dump 转储使用内建函数的用户定义强制转换和转换","url":"/docs/compare/?release=9.4.11#9.4.11-4fba47bfcb2ec0ac","version":"9.4.11"},{"db_id":"206f6527fb116024cd1b8b9db2358953","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"2a3aac55e24e54531d0f8a215b0cdefc742a6d9b9211a41a535ece0ea74b9bf4"},"kind":"equivalent","label":"9.3.16","source_url":"/docs/release/9.3.16/#id-1.11.6.14.5","title":"修复 pg_dump 转储使用内建函数的用户定义强制转换和转换","url":"/docs/compare/?release=9.3.16#9.3.16-4fba47bfcb2ec0ac","version":"9.3.16"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"2a3aac55e24e54531d0f8a215b0cdefc742a6d9b9211a41a535ece0ea74b9bf4"},"rule":2,"target":"1af558f49869195daea66118c0df707f","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"2a3aac55e24e54531d0f8a215b0cdefc742a6d9b9211a41a535ece0ea74b9bf4"},"rule":2,"target":"206f6527fb116024cd1b8b9db2358953","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"2a3aac55e24e54531d0f8a215b0cdefc742a6d9b9211a41a535ece0ea74b9bf4"},"rule":2,"target":"581a06be52555037f10c237117874cc0","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"2a3aac55e24e54531d0f8a215b0cdefc742a6d9b9211a41a535ece0ea74b9bf4"},"rule":2,"target":"fea8649624e2953332f50903213b1685","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.20/changes/022","source_hash":"132609db57db9d7f417cb6f67fdf083e75bf6add418aaf6f7b78f36c156b1af7","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"2a3aac55e24e54531d0f8a215b0cdefc742a6d9b9211a41a535ece0ea74b9bf4","text":"修复 pg_dump 转储使用内建函数的用户定义强制转换和转换（Stephen Frost）","title":"修复 pg_dump 转储使用内建函数的用户定义强制转换和转换","variants":[],"version":"9.2.20"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"917389edbf58b05a6f1216e2d6417b83","html":"\u003cp\u003e      修复包含 WAL 文件时备库服务器上可能的\n      \u003cspan\u003epg_basebackup\u003c/span\u003e 失败（Amit Kapila、Robert Haas）\n     \u003c/p\u003e","id":"9.2.20-ba21d14c399b76c0","identity_text":"Fix possible pg_basebackup failure on standby server when including WAL files (Amit Kapila, Robert Haas)","part":"changes","patch_ids":[],"related_changes":[{"db_id":"abeb2fd128bd039a4190704c1fb38488","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"f687a875b45f221032d567680d9431e8bac3736137bbf0c41802159d4574ebc4"},"kind":"equivalent","label":"9.6.2","source_url":"/docs/release/9.6.2/#id-1.11.6.27.5","title":"修复包含 WAL 文件时备库服务器上可能的 pg_basebackup 失败","url":"/docs/compare/?release=9.6.2#9.6.2-ba21d14c399b76c0","version":"9.6.2"},{"db_id":"6933c0008409c2ee70f12fe8d226fbd2","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"f687a875b45f221032d567680d9431e8bac3736137bbf0c41802159d4574ebc4"},"kind":"equivalent","label":"9.5.6","source_url":"/docs/release/9.5.6/#id-1.11.6.24.5","title":"修复包含 WAL 文件时备库服务器上可能的 pg_basebackup 失败","url":"/docs/compare/?release=9.5.6#9.5.6-ba21d14c399b76c0","version":"9.5.6"},{"db_id":"68c6b0764c4bf1614e325f69f12285e5","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"f687a875b45f221032d567680d9431e8bac3736137bbf0c41802159d4574ebc4"},"kind":"equivalent","label":"9.4.11","source_url":"/docs/release/9.4.11/#id-1.11.6.20.5","title":"修复包含 WAL 文件时备库服务器上可能的 pg_basebackup 失败","url":"/docs/compare/?release=9.4.11#9.4.11-ba21d14c399b76c0","version":"9.4.11"},{"db_id":"7570cd69307a64fcb41f65e0392d4c57","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"f687a875b45f221032d567680d9431e8bac3736137bbf0c41802159d4574ebc4"},"kind":"equivalent","label":"9.3.16","source_url":"/docs/release/9.3.16/#id-1.11.6.14.5","title":"修复包含 WAL 文件时备库服务器上可能的 pg_basebackup 失败","url":"/docs/compare/?release=9.3.16#9.3.16-ba21d14c399b76c0","version":"9.3.16"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"f687a875b45f221032d567680d9431e8bac3736137bbf0c41802159d4574ebc4"},"rule":2,"target":"68c6b0764c4bf1614e325f69f12285e5","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"f687a875b45f221032d567680d9431e8bac3736137bbf0c41802159d4574ebc4"},"rule":2,"target":"6933c0008409c2ee70f12fe8d226fbd2","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"f687a875b45f221032d567680d9431e8bac3736137bbf0c41802159d4574ebc4"},"rule":2,"target":"7570cd69307a64fcb41f65e0392d4c57","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"f687a875b45f221032d567680d9431e8bac3736137bbf0c41802159d4574ebc4"},"rule":2,"target":"abeb2fd128bd039a4190704c1fb38488","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.20/changes/023","source_hash":"98d6fdf3eba1ee25a7f99ce522ff1e2d9d66022246bebfa2a6df6235db34eebb","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"f687a875b45f221032d567680d9431e8bac3736137bbf0c41802159d4574ebc4","text":"修复包含 WAL 文件时备库服务器上可能的 pg_basebackup 失败（Amit Kapila、Robert Haas）","title":"修复包含 WAL 文件时备库服务器上可能的 pg_basebackup 失败","variants":[],"version":"9.2.20"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"8db1722f361c4d812e07500deebd3442","html":"\u003cp\u003e      确保我们为 PL/Python 创建的 Python 异常对象被正确引用计数（Rafa de la Torre、Tom Lane）\n     \u003c/p\u003e\u003cp\u003e      这避免了对象在 Python 垃圾回收周期发生之后被使用时的失败。\n     \u003c/p\u003e","id":"9.2.20-12c278910814d24b","identity_text":"Ensure that the Python exception objects we create for PL/Python are properly reference-counted (Rafa de la Torre, Tom Lane) This avoids failures if the objects are used after a Python garbage collection cycle has occurred.","part":"changes","patch_ids":[],"related_changes":[{"db_id":"f975296ade117cc2815748df07818bb4","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"fb15fae3e00350a8cbf28568410c0b0409fd12884b88f9afd4bcb14c1964997c"},"kind":"equivalent","label":"9.6.2","source_url":"/docs/release/9.6.2/#id-1.11.6.27.5","title":"确保我们为 PL/Python 创建的 Python 异常对象被正确引用计数","url":"/docs/compare/?release=9.6.2#9.6.2-12c278910814d24b","version":"9.6.2"},{"db_id":"af675597a1d73dea0e4f5c459b2b5564","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"fb15fae3e00350a8cbf28568410c0b0409fd12884b88f9afd4bcb14c1964997c"},"kind":"equivalent","label":"9.5.6","source_url":"/docs/release/9.5.6/#id-1.11.6.24.5","title":"确保我们为 PL/Python 创建的 Python 异常对象被正确引用计数","url":"/docs/compare/?release=9.5.6#9.5.6-12c278910814d24b","version":"9.5.6"},{"db_id":"b124b04f9107a88fb643b6d7061d5dd4","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"fb15fae3e00350a8cbf28568410c0b0409fd12884b88f9afd4bcb14c1964997c"},"kind":"equivalent","label":"9.4.11","source_url":"/docs/release/9.4.11/#id-1.11.6.20.5","title":"确保我们为 PL/Python 创建的 Python 异常对象被正确引用计数","url":"/docs/compare/?release=9.4.11#9.4.11-12c278910814d24b","version":"9.4.11"},{"db_id":"1390a5bd66a14c3b3d519b9461fdda99","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"fb15fae3e00350a8cbf28568410c0b0409fd12884b88f9afd4bcb14c1964997c"},"kind":"equivalent","label":"9.3.16","source_url":"/docs/release/9.3.16/#id-1.11.6.14.5","title":"确保我们为 PL/Python 创建的 Python 异常对象被正确引用计数","url":"/docs/compare/?release=9.3.16#9.3.16-12c278910814d24b","version":"9.3.16"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"fb15fae3e00350a8cbf28568410c0b0409fd12884b88f9afd4bcb14c1964997c"},"rule":2,"target":"1390a5bd66a14c3b3d519b9461fdda99","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"fb15fae3e00350a8cbf28568410c0b0409fd12884b88f9afd4bcb14c1964997c"},"rule":2,"target":"af675597a1d73dea0e4f5c459b2b5564","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"fb15fae3e00350a8cbf28568410c0b0409fd12884b88f9afd4bcb14c1964997c"},"rule":2,"target":"b124b04f9107a88fb643b6d7061d5dd4","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"fb15fae3e00350a8cbf28568410c0b0409fd12884b88f9afd4bcb14c1964997c"},"rule":2,"target":"f975296ade117cc2815748df07818bb4","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.20/changes/024","source_hash":"dc485c6b8edd53ca12d4e4495fd37a50cb2cd4b2d5278493635032017c2b3c49","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"fb15fae3e00350a8cbf28568410c0b0409fd12884b88f9afd4bcb14c1964997c","text":"确保我们为 PL/Python 创建的 Python 异常对象被正确引用计数（Rafa de la Torre、Tom Lane） 这避免了对象在 Python 垃圾回收周期发生之后被使用时的失败。","title":"确保我们为 PL/Python 创建的 Python 异常对象被正确引用计数","variants":[],"version":"9.2.20"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"13155088bcc3b2534d123510878f9213","html":"\u003cp\u003e      修复 PL/Tcl 支持以 \u003ccode\u003e.tupno\u003c/code\u003e 为列名的表上的触发器（Tom Lane）\n     \u003c/p\u003e\u003cp\u003e      这与 PL/Tcl 的 \u003ccode\u003espi_exec\u003c/code\u003e 和\n      \u003ccode\u003espi_execp\u003c/code\u003e 命令（以前未写入文档）的行为一致，即只在不存在该名字的真实列时才插入幻 \u003ccode\u003e.tupno\u003c/code\u003e 列。\n     \u003c/p\u003e","id":"9.2.20-2d0a4d1007979a08","identity_text":"Fix PL/Tcl to support triggers on tables that have .tupno as a column name (Tom Lane) This matches the (previously undocumented) behavior of PL/Tcl's spi_exec and spi_execp commands, namely that a magic .tupno column is inserted only if there isn't a real column named that.","part":"changes","patch_ids":[],"related_changes":[{"db_id":"78476c1a60a30fcdf082194b37a52d13","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"f6793cb11063369399335bf35e054cd40f6750f8ba6916917afbfd637312162e"},"kind":"equivalent","label":"9.6.2","source_url":"/docs/release/9.6.2/#id-1.11.6.27.5","title":"修复 PL/Tcl 支持以 .tupno 为列名的表上的触发器","url":"/docs/compare/?release=9.6.2#9.6.2-2d0a4d1007979a08","version":"9.6.2"},{"db_id":"9b3168a190a255cde02dbbac2e0ef469","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"f6793cb11063369399335bf35e054cd40f6750f8ba6916917afbfd637312162e"},"kind":"equivalent","label":"9.5.6","source_url":"/docs/release/9.5.6/#id-1.11.6.24.5","title":"修复 PL/Tcl 支持以 .tupno 为列名的表上的触发器","url":"/docs/compare/?release=9.5.6#9.5.6-2d0a4d1007979a08","version":"9.5.6"},{"db_id":"5e6780c37e4bb1e32b64d68e4f7d2e96","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"f6793cb11063369399335bf35e054cd40f6750f8ba6916917afbfd637312162e"},"kind":"equivalent","label":"9.4.11","source_url":"/docs/release/9.4.11/#id-1.11.6.20.5","title":"修复 PL/Tcl 支持以 .tupno 为列名的表上的触发器","url":"/docs/compare/?release=9.4.11#9.4.11-2d0a4d1007979a08","version":"9.4.11"},{"db_id":"982c56a5a1cda9da427ee7e8135b9435","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"f6793cb11063369399335bf35e054cd40f6750f8ba6916917afbfd637312162e"},"kind":"equivalent","label":"9.3.16","source_url":"/docs/release/9.3.16/#id-1.11.6.14.5","title":"修复 PL/Tcl 支持以 .tupno 为列名的表上的触发器","url":"/docs/compare/?release=9.3.16#9.3.16-2d0a4d1007979a08","version":"9.3.16"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"f6793cb11063369399335bf35e054cd40f6750f8ba6916917afbfd637312162e"},"rule":2,"target":"5e6780c37e4bb1e32b64d68e4f7d2e96","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"f6793cb11063369399335bf35e054cd40f6750f8ba6916917afbfd637312162e"},"rule":2,"target":"78476c1a60a30fcdf082194b37a52d13","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"f6793cb11063369399335bf35e054cd40f6750f8ba6916917afbfd637312162e"},"rule":2,"target":"982c56a5a1cda9da427ee7e8135b9435","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"f6793cb11063369399335bf35e054cd40f6750f8ba6916917afbfd637312162e"},"rule":2,"target":"9b3168a190a255cde02dbbac2e0ef469","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.20/changes/025","source_hash":"da65576d5ae967c3afb4c1feaaec0427fad9166232319e6ca20aa2f6cb311889","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"f6793cb11063369399335bf35e054cd40f6750f8ba6916917afbfd637312162e","text":"修复 PL/Tcl 支持以 .tupno 为列名的表上的触发器（Tom Lane） 这与 PL/Tcl 的 spi_exec 和 spi_execp 命令（以前未写入文档）的行为一致，即只在不存在该名字的真实列时才插入幻 .tupno 列。","title":"修复 PL/Tcl 支持以 .tupno 为列名的表上的触发器","variants":[],"version":"9.2.20"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"95d6f23f8ca3e577f27198c5a76696b9","html":"\u003cp\u003e      允许 \u003ccode\u003e~/.pgpass\u003c/code\u003e 文件中的 DOS 风格行尾，即使在\n      Unix 上也一样（Vik Fearing）\n     \u003c/p\u003e\u003cp\u003e      这一更改简化了在 Unix 和 Windows 机器之间使用同一密码文件。\n     \u003c/p\u003e","id":"9.2.20-f13e8ec0337a146d","identity_text":"Allow DOS-style line endings in ~/.pgpass files, even on Unix (Vik Fearing) This change simplifies use of the same password file across Unix and Windows machines.","part":"changes","patch_ids":[],"related_changes":[{"db_id":"f5042c2a104b12d38b1ec389b9b13fb1","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"6b95e5d55ebd490cf2ee0ac873df44c15f564a7391173ae6865ec0beb146dee6"},"kind":"equivalent","label":"9.6.2","source_url":"/docs/release/9.6.2/#id-1.11.6.27.5","title":"允许 ~/.pgpass 文件中的 DOS 风格行尾，即使在 Unix 上也一样","url":"/docs/compare/?release=9.6.2#9.6.2-f13e8ec0337a146d","version":"9.6.2"},{"db_id":"e9627113cb8963dd664fd65dab91e196","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"6b95e5d55ebd490cf2ee0ac873df44c15f564a7391173ae6865ec0beb146dee6"},"kind":"equivalent","label":"9.5.6","source_url":"/docs/release/9.5.6/#id-1.11.6.24.5","title":"允许 ~/.pgpass 文件中的 DOS 风格行尾，即使在 Unix 上也一样","url":"/docs/compare/?release=9.5.6#9.5.6-f13e8ec0337a146d","version":"9.5.6"},{"db_id":"07b8249fa1e1fd91d3a90a40a51448c5","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"6b95e5d55ebd490cf2ee0ac873df44c15f564a7391173ae6865ec0beb146dee6"},"kind":"equivalent","label":"9.4.11","source_url":"/docs/release/9.4.11/#id-1.11.6.20.5","title":"允许 ~/.pgpass 文件中的 DOS 风格行尾，即使在 Unix 上也一样","url":"/docs/compare/?release=9.4.11#9.4.11-f13e8ec0337a146d","version":"9.4.11"},{"db_id":"76b00a5bcfca92d6496177c433ba9910","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"6b95e5d55ebd490cf2ee0ac873df44c15f564a7391173ae6865ec0beb146dee6"},"kind":"equivalent","label":"9.3.16","source_url":"/docs/release/9.3.16/#id-1.11.6.14.5","title":"允许 ~/.pgpass 文件中的 DOS 风格行尾，即使在 Unix 上也一样","url":"/docs/compare/?release=9.3.16#9.3.16-f13e8ec0337a146d","version":"9.3.16"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"6b95e5d55ebd490cf2ee0ac873df44c15f564a7391173ae6865ec0beb146dee6"},"rule":2,"target":"07b8249fa1e1fd91d3a90a40a51448c5","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"6b95e5d55ebd490cf2ee0ac873df44c15f564a7391173ae6865ec0beb146dee6"},"rule":2,"target":"76b00a5bcfca92d6496177c433ba9910","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"6b95e5d55ebd490cf2ee0ac873df44c15f564a7391173ae6865ec0beb146dee6"},"rule":2,"target":"e9627113cb8963dd664fd65dab91e196","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"6b95e5d55ebd490cf2ee0ac873df44c15f564a7391173ae6865ec0beb146dee6"},"rule":2,"target":"f5042c2a104b12d38b1ec389b9b13fb1","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.20/changes/026","source_hash":"676f4a85ac6d6bc15e9de41cd4fcf2aa24b20c436196a390e7a0b44620ec9164","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"6b95e5d55ebd490cf2ee0ac873df44c15f564a7391173ae6865ec0beb146dee6","text":"允许 ~/.pgpass 文件中的 DOS 风格行尾，即使在 Unix 上也一样（Vik Fearing） 这一更改简化了在 Unix 和 Windows 机器之间使用同一密码文件。","title":"允许 ~/.pgpass 文件中的 DOS 风格行尾，即使在 Unix 上也一样","variants":[],"version":"9.2.20"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"1eef4bb7b78714b618129ec8963589ee","html":"\u003cp\u003e      修复 \u003cspan\u003eecpg\u003c/span\u003e 被给定以点结尾的文件名时的一字节缓冲区越界（Takayuki Tsunakawa）\n     \u003c/p\u003e","id":"9.2.20-77d838eeb1473632","identity_text":"Fix one-byte buffer overrun if ecpg is given a file name that ends with a dot (Takayuki Tsunakawa)","part":"changes","patch_ids":[],"related_changes":[{"db_id":"2690cbca07c4d6e844be7d7d35b9f611","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"28f787d8a01346fcf20a2d5a4f568f1f4858e9ed2eeb8ab7e298d04e1c1f92d8"},"kind":"equivalent","label":"9.6.2","source_url":"/docs/release/9.6.2/#id-1.11.6.27.5","title":"修复 ecpg 被给定以点结尾的文件名时的一字节缓冲区越界","url":"/docs/compare/?release=9.6.2#9.6.2-77d838eeb1473632","version":"9.6.2"},{"db_id":"58b636d8f88209ce036765aade41cba8","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"28f787d8a01346fcf20a2d5a4f568f1f4858e9ed2eeb8ab7e298d04e1c1f92d8"},"kind":"equivalent","label":"9.5.6","source_url":"/docs/release/9.5.6/#id-1.11.6.24.5","title":"修复 ecpg 被给定以点结尾的文件名时的一字节缓冲区越界","url":"/docs/compare/?release=9.5.6#9.5.6-77d838eeb1473632","version":"9.5.6"},{"db_id":"bf4cb52160fd94e8fbc8e94af8ed4337","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"28f787d8a01346fcf20a2d5a4f568f1f4858e9ed2eeb8ab7e298d04e1c1f92d8"},"kind":"equivalent","label":"9.4.11","source_url":"/docs/release/9.4.11/#id-1.11.6.20.5","title":"修复 ecpg 被给定以点结尾的文件名时的一字节缓冲区越界","url":"/docs/compare/?release=9.4.11#9.4.11-77d838eeb1473632","version":"9.4.11"},{"db_id":"8a4ca1a5d92dfa9aac0aae5141f0eb08","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"28f787d8a01346fcf20a2d5a4f568f1f4858e9ed2eeb8ab7e298d04e1c1f92d8"},"kind":"equivalent","label":"9.3.16","source_url":"/docs/release/9.3.16/#id-1.11.6.14.5","title":"修复 ecpg 被给定以点结尾的文件名时的一字节缓冲区越界","url":"/docs/compare/?release=9.3.16#9.3.16-77d838eeb1473632","version":"9.3.16"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"28f787d8a01346fcf20a2d5a4f568f1f4858e9ed2eeb8ab7e298d04e1c1f92d8"},"rule":2,"target":"2690cbca07c4d6e844be7d7d35b9f611","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"28f787d8a01346fcf20a2d5a4f568f1f4858e9ed2eeb8ab7e298d04e1c1f92d8"},"rule":2,"target":"58b636d8f88209ce036765aade41cba8","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"28f787d8a01346fcf20a2d5a4f568f1f4858e9ed2eeb8ab7e298d04e1c1f92d8"},"rule":2,"target":"8a4ca1a5d92dfa9aac0aae5141f0eb08","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"28f787d8a01346fcf20a2d5a4f568f1f4858e9ed2eeb8ab7e298d04e1c1f92d8"},"rule":2,"target":"bf4cb52160fd94e8fbc8e94af8ed4337","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.20/changes/027","source_hash":"03529257856fc53422cac0b57af786bff1c8bd2bb037dba97dcab774af6c7cd2","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"28f787d8a01346fcf20a2d5a4f568f1f4858e9ed2eeb8ab7e298d04e1c1f92d8","text":"修复 ecpg 被给定以点结尾的文件名时的一字节缓冲区越界（Takayuki Tsunakawa）","title":"修复 ecpg 被给定以点结尾的文件名时的一字节缓冲区越界","variants":[],"version":"9.2.20"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"be83e01d61a42923210581e911a32989","html":"\u003cp\u003e      修复 \u003cspan\u003epsql\u003c/span\u003e 对\n      \u003ccode\u003eALTER DEFAULT PRIVILEGES\u003c/code\u003e 的 Tab 补全（Gilles Darold、Stephen Frost）\n     \u003c/p\u003e","id":"9.2.20-c86790c533835e8d","identity_text":"Fix psql's tab completion for ALTER DEFAULT PRIVILEGES (Gilles Darold, Stephen Frost)","part":"changes","patch_ids":[],"related_changes":[{"db_id":"39cf1158ae74daa4b58cfcd084f8c908","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"0b16da395fddbe512f554a6d5863c27c473e58b148e55fff066038938885e493"},"kind":"equivalent","label":"9.6.2","source_url":"/docs/release/9.6.2/#id-1.11.6.27.5","title":"修复 psql 对 ALTER DEFAULT PRIVILEGES 的 Tab 补全","url":"/docs/compare/?release=9.6.2#9.6.2-c86790c533835e8d","version":"9.6.2"},{"db_id":"300301c03eeb20361e3c44174604a3cd","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"0b16da395fddbe512f554a6d5863c27c473e58b148e55fff066038938885e493"},"kind":"equivalent","label":"9.5.6","source_url":"/docs/release/9.5.6/#id-1.11.6.24.5","title":"修复 psql 对 ALTER DEFAULT PRIVILEGES 的 Tab 补全","url":"/docs/compare/?release=9.5.6#9.5.6-c86790c533835e8d","version":"9.5.6"},{"db_id":"a1bc105b6784ac48a0444b9350c18c67","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"0b16da395fddbe512f554a6d5863c27c473e58b148e55fff066038938885e493"},"kind":"equivalent","label":"9.4.11","source_url":"/docs/release/9.4.11/#id-1.11.6.20.5","title":"修复 psql 对 ALTER DEFAULT PRIVILEGES 的 Tab 补全","url":"/docs/compare/?release=9.4.11#9.4.11-c86790c533835e8d","version":"9.4.11"},{"db_id":"424f4ab11b2beeff894e1af2db875e74","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"0b16da395fddbe512f554a6d5863c27c473e58b148e55fff066038938885e493"},"kind":"equivalent","label":"9.3.16","source_url":"/docs/release/9.3.16/#id-1.11.6.14.5","title":"修复 psql 对 ALTER DEFAULT PRIVILEGES 的 Tab 补全","url":"/docs/compare/?release=9.3.16#9.3.16-c86790c533835e8d","version":"9.3.16"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"0b16da395fddbe512f554a6d5863c27c473e58b148e55fff066038938885e493"},"rule":2,"target":"300301c03eeb20361e3c44174604a3cd","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"0b16da395fddbe512f554a6d5863c27c473e58b148e55fff066038938885e493"},"rule":2,"target":"39cf1158ae74daa4b58cfcd084f8c908","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"0b16da395fddbe512f554a6d5863c27c473e58b148e55fff066038938885e493"},"rule":2,"target":"424f4ab11b2beeff894e1af2db875e74","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"0b16da395fddbe512f554a6d5863c27c473e58b148e55fff066038938885e493"},"rule":2,"target":"a1bc105b6784ac48a0444b9350c18c67","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.20/changes/028","source_hash":"272e6113048a0eaa70c195f4ddaafccacb2174686054c5ab8876a3c02966eaec","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"0b16da395fddbe512f554a6d5863c27c473e58b148e55fff066038938885e493","text":"修复 psql 对 ALTER DEFAULT PRIVILEGES 的 Tab 补全（Gilles Darold、Stephen Frost）","title":"修复 psql 对 ALTER DEFAULT PRIVILEGES 的 Tab 补全","variants":[],"version":"9.2.20"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"b9eca872baf4c74ad145f241bdefc229","html":"\u003cp\u003e      在 \u003cspan\u003epsql\u003c/span\u003e 中，把 \u003ccode\u003ePAGER\u003c/code\u003e 环境变量的空或全空白设置当作\u003cspan\u003e“\u003cspan\u003e不使用分页器\u003c/span\u003e”\u003c/span\u003e（Tom Lane）\n     \u003c/p\u003e\u003cp\u003e      此前这种设置导致本应发给分页器的输出完全消失。\n     \u003c/p\u003e","id":"9.2.20-b4e87a046ed587c0","identity_text":"In psql, treat an empty or all-blank setting of the PAGER environment variable as meaning no pager (Tom Lane) Previously, such a setting caused output intended for the pager to vanish entirely.","part":"changes","patch_ids":[],"related_changes":[{"db_id":"5398a79d78c70d471e631f9d90646066","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"b14d1d25539ce5d6d97d78b7e2b18b06dbef8efe5bd8ce8f6da95e1fd35eddbf"},"kind":"equivalent","label":"9.6.2","source_url":"/docs/release/9.6.2/#id-1.11.6.27.5","title":"在 psql 中，把 PAGER 环境变量的空或全空白设置当作“不使用分页器”","url":"/docs/compare/?release=9.6.2#9.6.2-b4e87a046ed587c0","version":"9.6.2"},{"db_id":"4462083b036c40f47bc4aee4208296b6","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"b14d1d25539ce5d6d97d78b7e2b18b06dbef8efe5bd8ce8f6da95e1fd35eddbf"},"kind":"equivalent","label":"9.5.6","source_url":"/docs/release/9.5.6/#id-1.11.6.24.5","title":"在 psql 中，把 PAGER 环境变量的空或全空白设置当作“不使用分页器”","url":"/docs/compare/?release=9.5.6#9.5.6-b4e87a046ed587c0","version":"9.5.6"},{"db_id":"31f5d927c4eccb46d56991e647e5e335","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"b14d1d25539ce5d6d97d78b7e2b18b06dbef8efe5bd8ce8f6da95e1fd35eddbf"},"kind":"equivalent","label":"9.4.11","source_url":"/docs/release/9.4.11/#id-1.11.6.20.5","title":"在 psql 中，把 PAGER 环境变量的空或全空白设置当作“不使用分页器”","url":"/docs/compare/?release=9.4.11#9.4.11-b4e87a046ed587c0","version":"9.4.11"},{"db_id":"766ba9a631742b05926183290fead72b","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"b14d1d25539ce5d6d97d78b7e2b18b06dbef8efe5bd8ce8f6da95e1fd35eddbf"},"kind":"equivalent","label":"9.3.16","source_url":"/docs/release/9.3.16/#id-1.11.6.14.5","title":"在 psql 中，把 PAGER 环境变量的空或全空白设置当作“不使用分页器”","url":"/docs/compare/?release=9.3.16#9.3.16-b4e87a046ed587c0","version":"9.3.16"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"b14d1d25539ce5d6d97d78b7e2b18b06dbef8efe5bd8ce8f6da95e1fd35eddbf"},"rule":2,"target":"31f5d927c4eccb46d56991e647e5e335","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"b14d1d25539ce5d6d97d78b7e2b18b06dbef8efe5bd8ce8f6da95e1fd35eddbf"},"rule":2,"target":"4462083b036c40f47bc4aee4208296b6","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"b14d1d25539ce5d6d97d78b7e2b18b06dbef8efe5bd8ce8f6da95e1fd35eddbf"},"rule":2,"target":"5398a79d78c70d471e631f9d90646066","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"b14d1d25539ce5d6d97d78b7e2b18b06dbef8efe5bd8ce8f6da95e1fd35eddbf"},"rule":2,"target":"766ba9a631742b05926183290fead72b","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.20/changes/029","source_hash":"300200b93846b2950143dc8318aaf5aca307078b8081846f936713c7f9a3d829","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"b14d1d25539ce5d6d97d78b7e2b18b06dbef8efe5bd8ce8f6da95e1fd35eddbf","text":"在 psql 中，把 PAGER 环境变量的空或全空白设置当作“不使用分页器”（Tom Lane） 此前这种设置导致本应发给分页器的输出完全消失。","title":"在 psql 中，把 PAGER 环境变量的空或全空白设置当作“不使用分页器”","variants":[],"version":"9.2.20"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"82fc7c47cba9088cec956c07eb036737","html":"\u003cp\u003e      改进 \u003ccode\u003econtrib/dblink\u003c/code\u003e 对低层\n      \u003cspan\u003elibpq\u003c/span\u003e 错误（如内存不足）的报告（Joe Conway）\n     \u003c/p\u003e","id":"9.2.20-cb194d2ff6803edd","identity_text":"Improve contrib/dblink's reporting of low-level libpq errors, such as out-of-memory (Joe Conway)","part":"changes","patch_ids":[],"related_changes":[{"db_id":"f7e01026e1a47f1bbda753dfc83fddb3","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"74c4839fd979a8e0b71f5751d5f31355085ea32e91276555f8eea873c45cd650"},"kind":"equivalent","label":"9.6.2","source_url":"/docs/release/9.6.2/#id-1.11.6.27.5","title":"改进 contrib/dblink 对低层 libpq 错误（如内存不足）的报告","url":"/docs/compare/?release=9.6.2#9.6.2-cb194d2ff6803edd","version":"9.6.2"},{"db_id":"aff1165f3f84d0922c4d50503f700156","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"74c4839fd979a8e0b71f5751d5f31355085ea32e91276555f8eea873c45cd650"},"kind":"equivalent","label":"9.5.6","source_url":"/docs/release/9.5.6/#id-1.11.6.24.5","title":"改进 contrib/dblink 对低层 libpq 错误（如内存不足）的报告","url":"/docs/compare/?release=9.5.6#9.5.6-cb194d2ff6803edd","version":"9.5.6"},{"db_id":"c1e22408dc4cf7995a40f11ed4d27218","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"74c4839fd979a8e0b71f5751d5f31355085ea32e91276555f8eea873c45cd650"},"kind":"equivalent","label":"9.4.11","source_url":"/docs/release/9.4.11/#id-1.11.6.20.5","title":"改进 contrib/dblink 对低层 libpq 错误（如内存不足）的报告","url":"/docs/compare/?release=9.4.11#9.4.11-cb194d2ff6803edd","version":"9.4.11"},{"db_id":"978abd96ba15d8bd4ad1ca4c636e1b3d","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"74c4839fd979a8e0b71f5751d5f31355085ea32e91276555f8eea873c45cd650"},"kind":"equivalent","label":"9.3.16","source_url":"/docs/release/9.3.16/#id-1.11.6.14.5","title":"改进 contrib/dblink 对低层 libpq 错误（如内存不足）的报告","url":"/docs/compare/?release=9.3.16#9.3.16-cb194d2ff6803edd","version":"9.3.16"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"74c4839fd979a8e0b71f5751d5f31355085ea32e91276555f8eea873c45cd650"},"rule":2,"target":"978abd96ba15d8bd4ad1ca4c636e1b3d","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"74c4839fd979a8e0b71f5751d5f31355085ea32e91276555f8eea873c45cd650"},"rule":2,"target":"aff1165f3f84d0922c4d50503f700156","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"74c4839fd979a8e0b71f5751d5f31355085ea32e91276555f8eea873c45cd650"},"rule":2,"target":"c1e22408dc4cf7995a40f11ed4d27218","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"74c4839fd979a8e0b71f5751d5f31355085ea32e91276555f8eea873c45cd650"},"rule":2,"target":"f7e01026e1a47f1bbda753dfc83fddb3","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.20/changes/030","source_hash":"d5892883917b4ede1664c2014f85879c730cc89fd9dfb6cb79cc530610d16934","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"74c4839fd979a8e0b71f5751d5f31355085ea32e91276555f8eea873c45cd650","text":"改进 contrib/dblink 对低层 libpq 错误（如内存不足）的报告（Joe Conway）","title":"改进 contrib/dblink 对低层 libpq 错误（如内存不足）的报告","variants":[],"version":"9.2.20"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"bc60be7aeca51282c86243f04104edcb","html":"\u003cp\u003e      在 Windows 上，确保环境变量更改被传播到以调试选项构建的 DLL（Christian Ullrich）\n     \u003c/p\u003e","id":"9.2.20-e3a04de3fa88d654","identity_text":"On Windows, ensure that environment variable changes are propagated to DLLs built with debug options (Christian Ullrich)","part":"changes","patch_ids":[],"related_changes":[{"db_id":"7162d92bab380922d7dff3b7ebb0a506","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"6ea54c4db0f54faf9e4802072e4b5f1176266400b4b94ebcc34e3d151a0bb79b"},"kind":"equivalent","label":"9.6.2","source_url":"/docs/release/9.6.2/#id-1.11.6.27.5","title":"在 Windows 上，确保环境变量更改被传播到以调试选项构建的 DLL","url":"/docs/compare/?release=9.6.2#9.6.2-e3a04de3fa88d654","version":"9.6.2"},{"db_id":"ae6bb923bdf9d0c4aec9e93d8e422383","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"6ea54c4db0f54faf9e4802072e4b5f1176266400b4b94ebcc34e3d151a0bb79b"},"kind":"equivalent","label":"9.5.6","source_url":"/docs/release/9.5.6/#id-1.11.6.24.5","title":"在 Windows 上，确保环境变量更改被传播到以调试选项构建的 DLL","url":"/docs/compare/?release=9.5.6#9.5.6-e3a04de3fa88d654","version":"9.5.6"},{"db_id":"92241514366458f8be2bc54c45b57b77","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"6ea54c4db0f54faf9e4802072e4b5f1176266400b4b94ebcc34e3d151a0bb79b"},"kind":"equivalent","label":"9.4.11","source_url":"/docs/release/9.4.11/#id-1.11.6.20.5","title":"在 Windows 上，确保环境变量更改被传播到以调试选项构建的 DLL","url":"/docs/compare/?release=9.4.11#9.4.11-e3a04de3fa88d654","version":"9.4.11"},{"db_id":"c4d22fa01c7df0bcf97cfa9049c954ff","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"6ea54c4db0f54faf9e4802072e4b5f1176266400b4b94ebcc34e3d151a0bb79b"},"kind":"equivalent","label":"9.3.16","source_url":"/docs/release/9.3.16/#id-1.11.6.14.5","title":"在 Windows 上，确保环境变量更改被传播到以调试选项构建的 DLL","url":"/docs/compare/?release=9.3.16#9.3.16-e3a04de3fa88d654","version":"9.3.16"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"6ea54c4db0f54faf9e4802072e4b5f1176266400b4b94ebcc34e3d151a0bb79b"},"rule":2,"target":"7162d92bab380922d7dff3b7ebb0a506","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"6ea54c4db0f54faf9e4802072e4b5f1176266400b4b94ebcc34e3d151a0bb79b"},"rule":2,"target":"92241514366458f8be2bc54c45b57b77","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"6ea54c4db0f54faf9e4802072e4b5f1176266400b4b94ebcc34e3d151a0bb79b"},"rule":2,"target":"ae6bb923bdf9d0c4aec9e93d8e422383","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"6ea54c4db0f54faf9e4802072e4b5f1176266400b4b94ebcc34e3d151a0bb79b"},"rule":2,"target":"c4d22fa01c7df0bcf97cfa9049c954ff","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.20/changes/031","source_hash":"8ca609811e53ff989da6f3086a3e5c9760aed23a863edabe8d57c8c836d02d0a","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"6ea54c4db0f54faf9e4802072e4b5f1176266400b4b94ebcc34e3d151a0bb79b","text":"在 Windows 上，确保环境变量更改被传播到以调试选项构建的 DLL（Christian Ullrich）","title":"在 Windows 上，确保环境变量更改被传播到以调试选项构建的 DLL","variants":[],"version":"9.2.20"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"54437dc8b7a05c4e4a66fd2ca9236a05","html":"\u003cp\u003e      把我们的时区库副本与 IANA tzcode2016j 同步（Tom Lane）\n     \u003c/p\u003e\u003cp\u003e      这修复了若干问题，最显著的是当目标目录不支持硬链接时区数据安装失败。\n     \u003c/p\u003e","id":"9.2.20-8ca36f6367d6fab6","identity_text":"Sync our copy of the timezone library with IANA release tzcode2016j (Tom Lane) This fixes various issues, most notably that timezone data installation failed if the target directory didn't support hard links.","part":"changes","patch_ids":[],"related_changes":[{"db_id":"457a190719c70cfc1f2c096b9d846f54","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"93deb20375112ad4a31533ee213c51ce9b2175725c880946c2083d367ed694db"},"kind":"equivalent","label":"9.6.2","source_url":"/docs/release/9.6.2/#id-1.11.6.27.5","title":"把我们的时区库副本与 IANA tzcode2016j 同步","url":"/docs/compare/?release=9.6.2#9.6.2-8ca36f6367d6fab6","version":"9.6.2"},{"db_id":"28247a8918f5b21afafdd608c376bd8b","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"93deb20375112ad4a31533ee213c51ce9b2175725c880946c2083d367ed694db"},"kind":"equivalent","label":"9.5.6","source_url":"/docs/release/9.5.6/#id-1.11.6.24.5","title":"把我们的时区库副本与 IANA tzcode2016j 同步","url":"/docs/compare/?release=9.5.6#9.5.6-8ca36f6367d6fab6","version":"9.5.6"},{"db_id":"ca2c92a81d1310ca096285ae5b1ef55e","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"93deb20375112ad4a31533ee213c51ce9b2175725c880946c2083d367ed694db"},"kind":"equivalent","label":"9.4.11","source_url":"/docs/release/9.4.11/#id-1.11.6.20.5","title":"把我们的时区库副本与 IANA tzcode2016j 同步","url":"/docs/compare/?release=9.4.11#9.4.11-8ca36f6367d6fab6","version":"9.4.11"},{"db_id":"eba27fcaf1b4470b6ed9ad2c0f08c917","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"93deb20375112ad4a31533ee213c51ce9b2175725c880946c2083d367ed694db"},"kind":"equivalent","label":"9.3.16","source_url":"/docs/release/9.3.16/#id-1.11.6.14.5","title":"把我们的时区库副本与 IANA tzcode2016j 同步","url":"/docs/compare/?release=9.3.16#9.3.16-8ca36f6367d6fab6","version":"9.3.16"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"93deb20375112ad4a31533ee213c51ce9b2175725c880946c2083d367ed694db"},"rule":2,"target":"28247a8918f5b21afafdd608c376bd8b","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"93deb20375112ad4a31533ee213c51ce9b2175725c880946c2083d367ed694db"},"rule":2,"target":"457a190719c70cfc1f2c096b9d846f54","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"93deb20375112ad4a31533ee213c51ce9b2175725c880946c2083d367ed694db"},"rule":2,"target":"ca2c92a81d1310ca096285ae5b1ef55e","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"93deb20375112ad4a31533ee213c51ce9b2175725c880946c2083d367ed694db"},"rule":2,"target":"eba27fcaf1b4470b6ed9ad2c0f08c917","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.20/changes/032","source_hash":"5f3988341c51c49b6b8f02ee184888d1d20795cbba8d59444e2ca1ac34d09997","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"93deb20375112ad4a31533ee213c51ce9b2175725c880946c2083d367ed694db","text":"把我们的时区库副本与 IANA tzcode2016j 同步（Tom Lane） 这修复了若干问题，最显著的是当目标目录不支持硬链接时区数据安装失败。","title":"把我们的时区库副本与 IANA tzcode2016j 同步","variants":[],"version":"9.2.20"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"a8d123be1a72877ac194ad3da4bda463","html":"\u003cp\u003e      更新时区数据文件到 \u003cspan\u003etzdata\u003c/span\u003e 版本 2016j，涉及北塞浦路斯（新增时区 Asia/Famagusta）、俄罗斯（新增时区\n      Europe/Saratov）、汤加和 Antarctica/Casey 的夏令时法规变更。还有意大利、哈萨克斯坦、马耳他和巴勒斯坦的历史修正。汤加改用首选数字时区缩写。\n     \u003c/p\u003e","id":"9.2.20-36d60f2ae6e8d309","identity_text":"Update time zone data files to tzdata release 2016j for DST law changes in northern Cyprus (adding a new zone Asia/Famagusta), Russia (adding a new zone Europe/Saratov), Tonga, and Antarctica/Casey. Historical corrections for Italy, Kazakhstan, Malta, and Palestine. Switch to preferring numeric zone abbreviations for Tonga.","part":"changes","patch_ids":[],"related_changes":[{"db_id":"b9138779daab18b2425a44234398696f","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"611b417aec1f1aa9363eab3dcbf8f77e61343b2f148bcc1089ebb294b7a5c713"},"kind":"equivalent","label":"9.6.2","source_url":"/docs/release/9.6.2/#id-1.11.6.27.5","title":"更新时区数据文件到 tzdata 版本 2016j，涉及北塞浦路斯（新增时区 Asia/Famagusta）、俄罗斯（新增时区 Europe/Saratov）、汤加和 Antarctica/Casey 的夏令时法规变更。还有意大利、哈萨克斯坦、马耳他和巴勒斯坦的历史修正。汤加改用首选数字时区缩写。","url":"/docs/compare/?release=9.6.2#9.6.2-36d60f2ae6e8d309","version":"9.6.2"},{"db_id":"f8c284348cf875fa447124b6c63868f1","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"611b417aec1f1aa9363eab3dcbf8f77e61343b2f148bcc1089ebb294b7a5c713"},"kind":"equivalent","label":"9.5.6","source_url":"/docs/release/9.5.6/#id-1.11.6.24.5","title":"更新时区数据文件到 tzdata 版本 2016j，涉及北塞浦路斯（新增时区 Asia/Famagusta）、俄罗斯（新增时区 Europe/Saratov）、汤加和 Antarctica/Casey 的夏令时法规变更。还有意大利、哈萨克斯坦、马耳他和巴勒斯坦的历史修正。汤加改用首选数字时区缩写。","url":"/docs/compare/?release=9.5.6#9.5.6-36d60f2ae6e8d309","version":"9.5.6"},{"db_id":"1ecb13fc6bee48daab0328fe79047aea","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"611b417aec1f1aa9363eab3dcbf8f77e61343b2f148bcc1089ebb294b7a5c713"},"kind":"equivalent","label":"9.4.11","source_url":"/docs/release/9.4.11/#id-1.11.6.20.5","title":"更新时区数据文件到 tzdata 版本 2016j，涉及北塞浦路斯（新增时区 Asia/Famagusta）、俄罗斯（新增时区 Europe/Saratov）、汤加和 Antarctica/Casey 的夏令时法规变更。还有意大利、哈萨克斯坦、马耳他和巴勒斯坦的历史修正。汤加改用首选数字时区缩写。","url":"/docs/compare/?release=9.4.11#9.4.11-36d60f2ae6e8d309","version":"9.4.11"},{"db_id":"984e50f01c50c81f2e6530606dab0861","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"611b417aec1f1aa9363eab3dcbf8f77e61343b2f148bcc1089ebb294b7a5c713"},"kind":"equivalent","label":"9.3.16","source_url":"/docs/release/9.3.16/#id-1.11.6.14.5","title":"更新时区数据文件到 tzdata 版本 2016j，涉及北塞浦路斯（新增时区 Asia/Famagusta）、俄罗斯（新增时区 Europe/Saratov）、汤加和 Antarctica/Casey 的夏令时法规变更。还有意大利、哈萨克斯坦、马耳他和巴勒斯坦的历史修正。汤加改用首选数字时区缩写。","url":"/docs/compare/?release=9.3.16#9.3.16-36d60f2ae6e8d309","version":"9.3.16"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"611b417aec1f1aa9363eab3dcbf8f77e61343b2f148bcc1089ebb294b7a5c713"},"rule":2,"target":"1ecb13fc6bee48daab0328fe79047aea","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"611b417aec1f1aa9363eab3dcbf8f77e61343b2f148bcc1089ebb294b7a5c713"},"rule":2,"target":"984e50f01c50c81f2e6530606dab0861","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"611b417aec1f1aa9363eab3dcbf8f77e61343b2f148bcc1089ebb294b7a5c713"},"rule":2,"target":"b9138779daab18b2425a44234398696f","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"611b417aec1f1aa9363eab3dcbf8f77e61343b2f148bcc1089ebb294b7a5c713"},"rule":2,"target":"f8c284348cf875fa447124b6c63868f1","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.20/changes/033","source_hash":"fa8c162921b570293109dc04486b2adfee84646805053d52158dc0e8b5e665af","source_url":"/docs/release/9.2.20/#id-1.11.6.9.5","statement_hash":"611b417aec1f1aa9363eab3dcbf8f77e61343b2f148bcc1089ebb294b7a5c713","text":"更新时区数据文件到 tzdata 版本 2016j，涉及北塞浦路斯（新增时区 Asia/Famagusta）、俄罗斯（新增时区 Europe/Saratov）、汤加和 Antarctica/Casey 的夏令时法规变更。还有意大利、哈萨克斯坦、马耳他和巴勒斯坦的历史修正。汤加改用首选数字时区缩写。","title":"更新时区数据文件到 tzdata 版本 2016j，涉及北塞浦路斯（新增时区 Asia/Famagusta）、俄罗斯（新增时区 Europe/Saratov）、汤加和 Antarctica/Casey 的夏令时法规变更。还有意大利、哈萨克斯坦、马耳他和巴勒斯坦的历史修正。汤加改用首选数字时区缩写。","variants":[],"version":"9.2.20"}],"entry_count":33,"eol":"2017-11-09","eol_date":"2017-11-09","label":"9.2.20","major":"9.2","manual":"9.2","manual_build":"9.2.24","manual_url":"/docs/9.2/release-9-2-20.html","migration_html":"\u003cp\u003e    对于运行 9.2.X 的用户，不需要进行转储/恢复。\u003c/p\u003e\u003cp\u003e     不过，如果你的安装受到下面第一条变更日志条目所述 bug 的影响，更新之后你可能需要采取行动修复损坏的索引。\n    \u003c/p\u003e\u003cp\u003e    不过，如果你是从早于 9.2.11 的版本升级，请参见\u003ca href=\"/docs/9.2/release-9-2-11.html\" title=\"E.14. 版本 9.2.11\"\u003e第 E.14 节\u003c/a\u003e。\u003c/p\u003e","minor":20,"placeholder":false,"source_as_of":"","source_url":"/docs/release/9.2.20/","status":"stable","status_label":"Historical","support_days":-3259,"supported":false,"version":"9.2.20"}],"mode":"release","release_count":1,"remaining_cves":[],"security_as_of":"2026-09-26","security_regressions":[],"source_as_of":"2026-09-26","stats":[{"count":33,"key":"all","label":"All changes"},{"count":0,"key":"feature","label":"Features"},{"count":14,"key":"bugfix","label":"Bug fixes"},{"count":0,"key":"security","label":"Security"},{"count":0,"key":"performance","label":"Performance"},{"count":0,"key":"compatibility","label":"Compatibility"},{"count":19,"key":"improvement","label":"Improvements"}],"to_release":{"age_days":3532,"build":"9.2.20","changes_count":33,"compatibility_count":0,"content_hash":"b8b86002e8fa4979f6d3f210f883cefcd057eb954f242f489c29b5005b532ed8","date":"2017-02-09","date_text":"2017-02-09","doc_git":"","doc_loaded_at":"2026-09-26T02:56:46.946617","entry_count":33,"eol":"2017-11-09","eol_date":"2017-11-09","label":"9.2.20","major":"9.2","manual":"9.2","manual_build":"9.2.24","manual_url":"/docs/9.2/release-9-2-20.html","migration_html":"\u003cp\u003e    对于运行 9.2.X 的用户，不需要进行转储/恢复。\u003c/p\u003e\u003cp\u003e     不过，如果你的安装受到下面第一条变更日志条目所述 bug 的影响，更新之后你可能需要采取行动修复损坏的索引。\n    \u003c/p\u003e\u003cp\u003e    不过，如果你是从早于 9.2.11 的版本升级，请参见\u003ca href=\"/docs/9.2/release-9-2-11.html\" title=\"E.14. 版本 9.2.11\"\u003e第 E.14 节\u003c/a\u003e。\u003c/p\u003e","minor":20,"placeholder":false,"source_as_of":"","source_url":"/docs/release/9.2.20/","status":"stable","status_label":"Historical","support_days":-3259,"supported":false,"version":"9.2.20"},"total":33,"warnings":[]}
