{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2017-08-10", "build": "9.6.4", "major": "9.6", "minor": 4, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.4", "eol_date": "2021-11-11", "date_text": "2017-08-10", "supported": false, "manual_url": "/docs/9.6/release-9-6-4.html", "source_url": "/docs/release/9.6.4/", "entry_count": 60, "placeholder": false, "content_hash": "8606ddbcaf078863a9968e24e5cd5df32c7176702c84dc68b5837b82eeae2bc8", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 60, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>对于运行 9.6.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你使用通过用户密码认证的外部数据服务器，请参见下面第一条变更日志条目。</p>\n<p>另外，如果你是从 9.6.3 之前的版本升级，参见<a href=\"/docs/9.6/release-9-6-3.html\" title=\"E.22. 版本 9.6.3\">第 E.22 节</a>。</p>", "compatibility_count": 0, "label": "9.6.4", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 3338, "support_days": -1784}, "groups": [{"date": "2017-08-10", "build": "9.6.4", "major": "9.6", "minor": 4, "manual": "9.6", "status": "stable", "doc_git": "", "version": "9.6.4", "eol_date": "2021-11-11", "date_text": "2017-08-10", "supported": false, "manual_url": "/docs/9.6/release-9-6-4.html", "source_url": "/docs/release/9.6.4/", "entry_count": 60, "placeholder": false, "content_hash": "8606ddbcaf078863a9968e24e5cd5df32c7176702c84dc68b5837b82eeae2bc8", "manual_build": "9.6.24", "source_as_of": "", "changes_count": 60, "doc_loaded_at": "2026-09-26T02:56:43.973460", "migration_html": "<p>对于运行 9.6.X 的用户，不需要转储/恢复。</p>\n<p>不过，如果你使用通过用户密码认证的外部数据服务器，请参见下面第一条变更日志条目。</p>\n<p>另外，如果你是从 9.6.3 之前的版本升级，参见<a href=\"/docs/9.6/release-9-6-3.html\" title=\"E.22. 版本 9.6.3\">第 E.22 节</a>。</p>", "compatibility_count": 0, "label": "9.6.4", "status_label": "历史版本", "eol": "2021-11-11", "age_days": 3338, "support_days": -1784, "entries": [{"id": "9.6.4-a79358365b635764", "cves": ["CVE-2017-7486", "CVE-2017-7547"], "html": "<p>进一步限制 <code>pg_user_mappings</code>.<code>umoptions</code> 的可见性，以保护存储为用户映射选项的密码（Noah Misch）</p>\n<p>CVE-2017-7486 的修复不正确：它允许用户看到她自己用户映射中的选项，即使她对相关外部服务器没有 <code>USAGE</code> 权限。这种选项可能包含由服务器所有者而非用户自己提供的密码。由于 <code>information_schema.user_mapping_options</code> 在这种情况下不显示选项，<code>pg_user_mappings</code> 也不应该。（CVE-2017-7547）</p>\n<p>此补丁本身只会修复新 initdb 的数据库中的行为。如果希望在现有数据库中应用此更改，需要执行以下操作：</p>\n<div>\n<ol type=\"1\">\n<li>\n<p>在 <code>postgresql.conf</code> 中添加 <code>allow_system_table_mods = true</code> 后重启 postmaster。（在支持 <code>ALTER SYSTEM</code> 的版本中，可以用它进行配置更改，但仍需重启。）</p>\n</li>\n<li>\n<p>在集簇的<span><em>每个</em></span>数据库中，以超级用户身份运行以下命令：</p>\n<pre>SET search_path = pg_catalog;\nCREATE OR REPLACE VIEW pg_user_mappings AS\nSELECT U.oid AS umid, S.oid AS srvid, S.srvname AS srvname,\n       U.umuser AS umuser,\n       CASE WHEN U.umuser = 0 THEN 'public' ELSE A.rolname END AS usename,\n       CASE WHEN (U.umuser &lt;&gt; 0 AND A.rolname = current_user\n                   AND (pg_has_role(S.srvowner, 'USAGE')\n                        OR has_server_privilege(S.oid, 'USAGE')))\n                OR (U.umuser = 0 AND pg_has_role(S.srvowner, 'USAGE'))\n                OR (SELECT rolsuper FROM pg_authid WHERE rolname = current_user)\n            THEN U.umoptions ELSE NULL END AS umoptions\nFROM pg_user_mapping U\n     LEFT JOIN pg_authid A ON (A.oid = U.umuser)\n     JOIN pg_foreign_server S ON (U.umserver = S.oid);\n</pre></li>\n<li>\n<p>不要忘记包括 <code>template0</code> 和 <code>template1</code> 数据库，否则漏洞仍会存在于之后创建的数据库中。要修复 <code>template0</code>，需要暂时让它接受连接。在 <span>PostgreSQL</span> 9.5 及之后，可以使用</p>\n<pre>ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true;\n</pre>\n<p>修复 <code>template0</code> 之后再撤销：</p>\n<pre>ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false;\n</pre>\n<p>在更早的版本中，改用：</p>\n<pre>UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';\nUPDATE pg_database SET datallowconn = false WHERE datname = 'template0';\n</pre></li>\n<li>\n<p>最后，移除 <code>allow_system_table_mods</code> 配置设置，并再次重启 postmaster。</p>\n</li>\n</ol>\n</div>", "text": "进一步限制 pg_user_mappings.umoptions 的可见性，以保护存储为用户映射选项的密码（Noah Misch） CVE-2017-7486 的修复不正确：它允许用户看到她自己用户映射中的选项，即使她对相关外部服务器没有 USAGE 权限。这种选项可能包含由服务器所有者而非用户自己提供的密码。由于 information_schema.user_mapping_options 在这种情况下不显示选项，pg_user_mappings 也不应该。（CVE-2017-7547） 此补丁本身只会修复新 initdb 的数据库中的行为。如果希望在现有数据库中应用此更改，需要执行以下操作： 在 postgresql.conf 中添加 allow_system_table_mods = true 后重启 postmaster。（在支持 ALTER SYSTEM 的版本中，可以用它进行配置更改，但仍需重启。） 在集簇的每个数据库中，以超级用户身份运行以下命令： SET search_path = pg_catalog; CREATE OR REPLACE VIEW pg_user_mappings AS SELECT U.oid AS umid, S.oid AS srvid, S.srvname AS srvname, U.umuser AS umuser, CASE WHEN U.umuser = 0 THEN 'public' ELSE A.rolname END AS usename, CASE WHEN (U.umuser <> 0 AND A.rolname = current_user AND (pg_has_role(S.srvowner, 'USAGE') OR has_server_privilege(S.oid, 'USAGE'))) OR (U.umuser = 0 AND pg_has_role(S.srvowner, 'USAGE')) OR (SELECT rolsuper FROM pg_authid WHERE rolname = current_user) THEN U.umoptions ELSE NULL END AS umoptions FROM pg_user_mapping U LEFT JOIN pg_authid A ON (A.oid = U.umuser) JOIN pg_foreign_server S ON (U.umserver = S.oid); 不要忘记包括 template0 和 template1 数据库，否则漏洞仍会存在于之后创建的数据库中。要修复 template0，需要暂时让它接受连接。在 PostgreSQL 9.5 及之后，可以使用 ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true; 修复 template0 之后再撤销： ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false; 在更早的版本中，改用： UPDATE pg_database SET datallowconn = true WHERE datname = 'template0'; UPDATE pg_database SET datallowconn = false WHERE datname = 'template0'; 最后，移除 allow_system_table_mods 配置设置，并再次重启 postmaster。", "title": "进一步限制 pg_user_mappings.umoptions 的可见性，以保护存储为用户映射选项的密码", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "f7ebba0f67292e920126fc2b315364b3087756fa230f0245c1869aae421eed8a", "section_path": ["变更"], "commit_groups": [["156099630", "36f9f6095", "5e8e00914", "b6e39ca92", "e255e97a2", "e568e1eee"]], "identity_text": "Further restrict visibility of pg_user_mappings.umoptions, to protect passwords stored as user mapping options (Noah Misch) The fix for CVE-2017-7486 was incorrect: it allowed a user to see the options in her own user mapping, even if she did not have USAGE permission on the associated foreign server. Such options might include a password that had been provided by the server owner rather than the user herself. Since information_schema.user_mapping_options does not show the options in such cases, pg_user_mappings should not either. (CVE-2017-7547) By itself, this patch will only fix the behavior in newly initdb'd databases. If you wish to apply this change in an existing database, you will need to do the following: Restart the postmaster after adding allow_system_table_mods = true to postgresql.conf. (In versions supporting ALTER SYSTEM, you can use that to make the configuration change, but you'll still need a restart.) In each database of the cluster, run the following commands as superuser: SET search_path = pg_catalog; CREATE OR REPLACE VIEW pg_user_mappings AS SELECT U.oid AS umid, S.oid AS srvid, S.srvname AS srvname, U.umuser AS umuser, CASE WHEN U.umuser = 0 THEN 'public' ELSE A.rolname END AS usename, CASE WHEN (U.umuser <> 0 AND A.rolname = current_user AND (pg_has_role(S.srvowner, 'USAGE') OR has_server_privilege(S.oid, 'USAGE'))) OR (U.umuser = 0 AND pg_has_role(S.srvowner, 'USAGE')) OR (SELECT rolsuper FROM pg_authid WHERE rolname = current_user) THEN U.umoptions ELSE NULL END AS umoptions FROM pg_user_mapping U LEFT JOIN pg_authid A ON (A.oid = U.umuser) JOIN pg_foreign_server S ON (U.umserver = S.oid); Do not forget to include the template0 and template1 databases, or the vulnerability will still exist in databases you create later. To fix template0, you'll need to temporarily make it accept connections. In PostgreSQL 9.5 and later, you can use ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true; and then after fixing template0, undo that with ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false; In prior versions, instead use UPDATE pg_database SET datallowconn = true WHERE datname = 'template0'; UPDATE pg_database SET datallowconn = false WHERE datname = 'template0'; Finally, remove the allow_system_table_mods configuration setting, and again restart the postmaster.", "commit_aliases": ["156099630", "36f9f6095", "5e8e00914", "b6e39ca92", "e255e97a2", "e568e1eee"], "source_commits": ["156099630"], "source_entry_id": "9.6.4/changes/001", "db_id": "1e69271813fc4ef5d63b790ce20c8121", "patch_ids": ["7d34abb372ef300ca7bd81ea3b0035ed"], "statement_hash": "584ea2bb7fddd675f56f894ca7f8ee8b10adf6d95c678e599dae323c2cdad731", "relations": [{"rule": 2, "type": "equivalent", "target": "1855f0a3638d5064133d7c655b6801a8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "584ea2bb7fddd675f56f894ca7f8ee8b10adf6d95c678e599dae323c2cdad731"}}, {"rule": 2, "type": "equivalent", "target": "21b6568d8ef3f87de08e2d1aeba27c01", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "584ea2bb7fddd675f56f894ca7f8ee8b10adf6d95c678e599dae323c2cdad731"}}, {"rule": 2, "type": "equivalent", "target": "d9c8c2d5f382f57bd292b9414c97967a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "584ea2bb7fddd675f56f894ca7f8ee8b10adf6d95c678e599dae323c2cdad731"}}, {"rule": 2, "type": "equivalent", "target": "e1a74c8d75ca403b9d0629f7fef87947", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "584ea2bb7fddd675f56f894ca7f8ee8b10adf6d95c678e599dae323c2cdad731"}}], "version": "9.6.4", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "e1a74c8d75ca403b9d0629f7fef87947", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "进一步限制 pg_user_mappings.umoptions 的可见性，以保护存储为用户映射选项的密码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "584ea2bb7fddd675f56f894ca7f8ee8b10adf6d95c678e599dae323c2cdad731"}, "url": "/docs/compare/?release=9.5.8#9.5.8-a79358365b635764", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "21b6568d8ef3f87de08e2d1aeba27c01", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "进一步限制 pg_user_mappings.umoptions 的可见性，以保护存储为用户映射选项的密码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "584ea2bb7fddd675f56f894ca7f8ee8b10adf6d95c678e599dae323c2cdad731"}, "url": "/docs/compare/?release=9.4.13#9.4.13-a79358365b635764", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "d9c8c2d5f382f57bd292b9414c97967a", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "进一步限制 pg_user_mappings.umoptions 的可见性，以保护存储为用户映射选项的密码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "584ea2bb7fddd675f56f894ca7f8ee8b10adf6d95c678e599dae323c2cdad731"}, "url": "/docs/compare/?release=9.3.18#9.3.18-a79358365b635764", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "1855f0a3638d5064133d7c655b6801a8", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "进一步限制 pg_user_mappings.umoptions 的可见性，以保护存储为用户映射选项的密码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "584ea2bb7fddd675f56f894ca7f8ee8b10adf6d95c678e599dae323c2cdad731"}, "url": "/docs/compare/?release=9.2.22#9.2.22-a79358365b635764", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-49a2f6860ca3f76c", "cves": ["CVE-2017-7546"], "html": "<p>禁止在所有基于密码的认证方法中使用空密码（Heikki Linnakangas）</p>\n<p><span>libpq</span> 忽略空的密码说明，不把它们传输给服务器。因此，如果用户的密码被设为空字符串，就无法通过 <span>psql</span> 或其他基于 <span>libpq</span> 的客户端用该密码登录。管理员可能因此认为把密码设为空等同于禁用密码登录。然而，使用修改过的或非 <span>libpq</span> 的客户端，登录可能是可能的，这取决于配置的认证方法。特别是最常见的方法 <code>md5</code> 接受空密码。更改服务器在所有情况下拒绝空密码。（CVE-2017-7546）</p>", "text": "禁止在所有基于密码的认证方法中使用空密码（Heikki Linnakangas） libpq 忽略空的密码说明，不把它们传输给服务器。因此，如果用户的密码被设为空字符串，就无法通过 psql 或其他基于 libpq 的客户端用该密码登录。管理员可能因此认为把密码设为空等同于禁用密码登录。然而，使用修改过的或非 libpq 的客户端，登录可能是可能的，这取决于配置的认证方法。特别是最常见的方法 md5 接受空密码。更改服务器在所有情况下拒绝空密码。（CVE-2017-7546）", "title": "禁止在所有基于密码的认证方法中使用空密码", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "0b15b62725ee6732b6e872513f39e262a70b76233e931fc9eb7584da8836efee", "section_path": ["变更"], "commit_groups": [["06651648a", "127835ddf", "b2f833ea7", "bf6b9e944", "d5d46d99b", "f6fc72cb6"]], "identity_text": "Disallow empty passwords in all password-based authentication methods (Heikki Linnakangas) libpq ignores empty password specifications, and does not transmit them to the server. So, if a user's password has been set to the empty string, it's impossible to log in with that password via psql or other libpq-based clients. An administrator might therefore believe that setting the password to empty is equivalent to disabling password login. However, with a modified or non-libpq-based client, logging in could be possible, depending on which authentication method is configured. In particular the most common method, md5, accepted empty passwords. Change the server to reject empty passwords in all cases. (CVE-2017-7546)", "commit_aliases": ["06651648a", "127835ddf", "b2f833ea7", "bf6b9e944", "d5d46d99b", "f6fc72cb6"], "source_commits": ["f6fc72cb6"], "source_entry_id": "9.6.4/changes/002", "db_id": "40acd6d17343ed4ffc6e174a3ba3d54b", "patch_ids": ["ead756eb15ba40bf21794f911086badf"], "statement_hash": "cc4bc48394a4dd716143d3fade767645ef394af6f493bf13e77a885e081f3a70", "relations": [{"rule": 2, "type": "equivalent", "target": "25dc2f083ab66c1e49733c8097ace563", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc4bc48394a4dd716143d3fade767645ef394af6f493bf13e77a885e081f3a70"}}, {"rule": 2, "type": "equivalent", "target": "69397c3edcff5d4d9add77abd127c3c7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc4bc48394a4dd716143d3fade767645ef394af6f493bf13e77a885e081f3a70"}}, {"rule": 2, "type": "equivalent", "target": "84b04fd1018199fb6cd762ee8453dc5c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc4bc48394a4dd716143d3fade767645ef394af6f493bf13e77a885e081f3a70"}}, {"rule": 2, "type": "equivalent", "target": "fa4d8a03c1f22fe89447983939f7c916", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc4bc48394a4dd716143d3fade767645ef394af6f493bf13e77a885e081f3a70"}}], "version": "9.6.4", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "fa4d8a03c1f22fe89447983939f7c916", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "禁止在所有基于密码的认证方法中使用空密码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc4bc48394a4dd716143d3fade767645ef394af6f493bf13e77a885e081f3a70"}, "url": "/docs/compare/?release=9.5.8#9.5.8-49a2f6860ca3f76c", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "25dc2f083ab66c1e49733c8097ace563", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "禁止在所有基于密码的认证方法中使用空密码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc4bc48394a4dd716143d3fade767645ef394af6f493bf13e77a885e081f3a70"}, "url": "/docs/compare/?release=9.4.13#9.4.13-49a2f6860ca3f76c", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "84b04fd1018199fb6cd762ee8453dc5c", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "禁止在所有基于密码的认证方法中使用空密码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc4bc48394a4dd716143d3fade767645ef394af6f493bf13e77a885e081f3a70"}, "url": "/docs/compare/?release=9.3.18#9.3.18-49a2f6860ca3f76c", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "69397c3edcff5d4d9add77abd127c3c7", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "禁止在所有基于密码的认证方法中使用空密码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc4bc48394a4dd716143d3fade767645ef394af6f493bf13e77a885e081f3a70"}, "url": "/docs/compare/?release=9.2.22#9.2.22-49a2f6860ca3f76c", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-dccc2650968b60e7", "cves": ["CVE-2017-7548"], "html": "<p>让 <code>lo_put()</code> 检查对目标大对象的 <code>UPDATE</code> 权限（Tom Lane、Michael Paquier）</p>\n<p><code>lo_put()</code> 理所当然应要求与 <code>lowrite()</code> 相同的权限，但检查缺失，允许任何用户更改大对象中的数据。（CVE-2017-7548）</p>", "text": "让 lo_put() 检查对目标大对象的 UPDATE 权限（Tom Lane、Michael Paquier） lo_put() 理所当然应要求与 lowrite() 相同的权限，但检查缺失，允许任何用户更改大对象中的数据。（CVE-2017-7548）", "title": "让 lo_put() 检查对目标大对象的 UPDATE 权限", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "11626c1c975712d2ce837957b19203023f9e1a83394b96c75b7b9b23645e2b76", "section_path": ["变更"], "commit_groups": [["52a414387", "873741c68", "8d9881911", "f1cda6d6c"]], "identity_text": "Make lo_put() check for UPDATE privilege on the target large object (Tom Lane, Michael Paquier) lo_put() should surely require the same permissions as lowrite(), but the check was missing, allowing any user to change the data in a large object. (CVE-2017-7548)", "commit_aliases": ["52a414387", "873741c68", "8d9881911", "f1cda6d6c"], "source_commits": ["52a414387"], "source_entry_id": "9.6.4/changes/003", "db_id": "5bceb6c318f55704a8d217698668a81e", "patch_ids": ["c0f6bc7668b5a2367100487d67b0fce3"], "statement_hash": "f125a54671aa221b3d7f0ed71d3acbabbd715511b27ee70a2991d62f83638757", "relations": [{"rule": 2, "type": "equivalent", "target": "558e1b7f415e4b885907cbd9a480a125", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f125a54671aa221b3d7f0ed71d3acbabbd715511b27ee70a2991d62f83638757"}}, {"rule": 2, "type": "equivalent", "target": "d893d7db30473d6217221904807954e7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f125a54671aa221b3d7f0ed71d3acbabbd715511b27ee70a2991d62f83638757"}}], "version": "9.6.4", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "d893d7db30473d6217221904807954e7", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "让 lo_put() 检查对目标大对象的 UPDATE 权限", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f125a54671aa221b3d7f0ed71d3acbabbd715511b27ee70a2991d62f83638757"}, "url": "/docs/compare/?release=9.5.8#9.5.8-dccc2650968b60e7", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "558e1b7f415e4b885907cbd9a480a125", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "让 lo_put() 检查对目标大对象的 UPDATE 权限", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f125a54671aa221b3d7f0ed71d3acbabbd715511b27ee70a2991d62f83638757"}, "url": "/docs/compare/?release=9.4.13#9.4.13-dccc2650968b60e7", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}]}, {"id": "9.6.4-444fc7d1846c3223", "cves": [], "html": "<p>更正关于用 <span>pg_upgrade</span> 升级备库服务器过程的文档（Bruce Momjian）</p>\n<p>原来的文档指示用户在运行 <span>pg_upgrade</span> 之后、同步备库之前启动/停止主服务器。这个顺序是不安全的。</p>", "text": "更正关于用 pg_upgrade 升级备库服务器过程的文档（Bruce Momjian） 原来的文档指示用户在运行 pg_upgrade 之后、同步备库之前启动/停止主服务器。这个顺序是不安全的。", "title": "更正关于用 pg_upgrade 升级备库服务器过程的文档", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "01a0a7b970974e7a7a748007ee1a9597d173b2c74cdf87ea28e724f8049ba7e5", "section_path": ["变更"], "commit_groups": [["0f33a719f", "a0873fbab", "fd376afc9"]], "identity_text": "Correct the documentation about the process for upgrading standby servers with pg_upgrade (Bruce Momjian) The previous documentation instructed users to start/stop the primary server after running pg_upgrade but before syncing the standby servers. This sequence is unsafe.", "commit_aliases": ["0f33a719f", "a0873fbab", "fd376afc9"], "source_commits": ["a0873fbab"], "source_entry_id": "9.6.4/changes/004", "db_id": "981170f5b2f5d00dd184bf992886136c", "patch_ids": ["ed383c0be3062dfd2d5907150bc766bb"], "statement_hash": "511e47dc46013326b22e07c8a8951bfbd928f014544ba05b43c042d42afe1591", "relations": [{"rule": 2, "type": "equivalent", "target": "509a10b2a74a2d4ef0b3142f3517abf8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "511e47dc46013326b22e07c8a8951bfbd928f014544ba05b43c042d42afe1591"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "509a10b2a74a2d4ef0b3142f3517abf8", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "更正关于用 pg_upgrade 升级备库服务器过程的文档", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "511e47dc46013326b22e07c8a8951bfbd928f014544ba05b43c042d42afe1591"}, "url": "/docs/compare/?release=9.5.8#9.5.8-444fc7d1846c3223", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}]}, {"id": "9.6.4-1d168da8c9ffffeb", "cves": [], "html": "<p>修复元组更新链的并发锁定（Álvaro Herrera）</p>\n<p>如果多个会话用非冲突锁模式并使用旧快照并发锁定一条元组更新链，且都成功，由于竞态条件其中一些仍可能失败（并得出没有存活元组版本的结论）。这会导致诸如外键检查看不到一个确实存在但正被并发更新的元组之类的后果。</p>", "text": "修复元组更新链的并发锁定（Álvaro Herrera） 如果多个会话用非冲突锁模式并使用旧快照并发锁定一条元组更新链，且都成功，由于竞态条件其中一些仍可能失败（并得出没有存活元组版本的结论）。这会导致诸如外键检查看不到一个确实存在但正被并发更新的元组之类的后果。", "title": "修复元组更新链的并发锁定", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "7ae5fa6f198c717aa339426c1ee38daa11f46f7512ee9286398bba82cf34efe9", "section_path": ["变更"], "commit_groups": [["0d4604ad6", "2efbfb94b", "459c64d32", "8c348765f", "dfd091985"]], "identity_text": "Fix concurrent locking of tuple update chains (Álvaro Herrera) If several sessions concurrently lock a tuple update chain with nonconflicting lock modes using an old snapshot, and they all succeed, it was possible for some of them to nonetheless fail (and conclude there is no live tuple version) due to a race condition. This had consequences such as foreign-key checks failing to see a tuple that definitely exists but is being updated concurrently.", "commit_aliases": ["0d4604ad6", "2efbfb94b", "459c64d32", "8c348765f", "dfd091985"], "source_commits": ["8c348765f"], "source_entry_id": "9.6.4/changes/005", "db_id": "5021acaa49f542ee7a1757b451c26dd4", "patch_ids": ["96fd78ec6d36c45653dc486426a98b50"], "statement_hash": "7715c88ff833c4f995f3ebf65b02759a9b46b8c41fa56885649dd73cf2965907", "relations": [{"rule": 2, "type": "equivalent", "target": "26f8fce38455ae9b217177c8d0dc47a1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7715c88ff833c4f995f3ebf65b02759a9b46b8c41fa56885649dd73cf2965907"}}, {"rule": 2, "type": "equivalent", "target": "8226a3ad10843c3de2b89569870d5b73", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7715c88ff833c4f995f3ebf65b02759a9b46b8c41fa56885649dd73cf2965907"}}, {"rule": 2, "type": "equivalent", "target": "cc57bf2a68570429ea08bcb73f511f0d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7715c88ff833c4f995f3ebf65b02759a9b46b8c41fa56885649dd73cf2965907"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "cc57bf2a68570429ea08bcb73f511f0d", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复元组更新链的并发锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7715c88ff833c4f995f3ebf65b02759a9b46b8c41fa56885649dd73cf2965907"}, "url": "/docs/compare/?release=9.5.8#9.5.8-1d168da8c9ffffeb", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "26f8fce38455ae9b217177c8d0dc47a1", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复元组更新链的并发锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7715c88ff833c4f995f3ebf65b02759a9b46b8c41fa56885649dd73cf2965907"}, "url": "/docs/compare/?release=9.4.13#9.4.13-1d168da8c9ffffeb", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "8226a3ad10843c3de2b89569870d5b73", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复元组更新链的并发锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7715c88ff833c4f995f3ebf65b02759a9b46b8c41fa56885649dd73cf2965907"}, "url": "/docs/compare/?release=9.3.18#9.3.18-1d168da8c9ffffeb", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}]}, {"id": "9.6.4-bc9d450fb60692a1", "cves": [], "html": "<p>修复冻结 XMAX 是恰好只有一个仍感兴趣成员的多事务的元组时可能的数据损坏（Teodor Sigaev）</p>", "text": "修复冻结 XMAX 是恰好只有一个仍感兴趣成员的多事务的元组时可能的数据损坏（Teodor Sigaev）", "title": "修复冻结 XMAX 是恰好只有一个仍感兴趣成员的多事务的元组时可能的数据损坏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "a17c19dd88f4c12bd1b190d0c3f44c733f6f6d7a6dbe0827323f308e31546aff", "section_path": ["变更"], "commit_groups": [["31b8db8e6", "42f62e4c9", "b90e4ca3e", "f371cc9e9", "fb2d385e6"]], "identity_text": "Fix potential data corruption when freezing a tuple whose XMAX is a multixact with exactly one still-interesting member (Teodor Sigaev)", "commit_aliases": ["31b8db8e6", "42f62e4c9", "b90e4ca3e", "f371cc9e9", "fb2d385e6"], "source_commits": ["42f62e4c9"], "source_entry_id": "9.6.4/changes/006", "db_id": "3468fa6a3ba50966f59fc08c2e94add7", "patch_ids": ["8159c59d23582a5be7804e0da896a840"], "statement_hash": "ab694c3bb70fd6fde4eeb5967c2aae88de1df0f6d9ac2dd78243c1a738de097a", "relations": [{"rule": 2, "type": "equivalent", "target": "6474732a344a1a3c98e4d8c98d30ccdc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab694c3bb70fd6fde4eeb5967c2aae88de1df0f6d9ac2dd78243c1a738de097a"}}, {"rule": 2, "type": "equivalent", "target": "dd3dc6a49e24957cea1d5623a01d9d3a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab694c3bb70fd6fde4eeb5967c2aae88de1df0f6d9ac2dd78243c1a738de097a"}}, {"rule": 2, "type": "equivalent", "target": "edf521238b1e56374b823c0a408a8139", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab694c3bb70fd6fde4eeb5967c2aae88de1df0f6d9ac2dd78243c1a738de097a"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "edf521238b1e56374b823c0a408a8139", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复冻结 XMAX 是恰好只有一个仍感兴趣成员的多事务的元组时可能的数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab694c3bb70fd6fde4eeb5967c2aae88de1df0f6d9ac2dd78243c1a738de097a"}, "url": "/docs/compare/?release=9.5.8#9.5.8-bc9d450fb60692a1", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "dd3dc6a49e24957cea1d5623a01d9d3a", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复冻结 XMAX 为恰好剩一个仍受关注成员的多事务的元组时潜在的数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab694c3bb70fd6fde4eeb5967c2aae88de1df0f6d9ac2dd78243c1a738de097a"}, "url": "/docs/compare/?release=9.4.13#9.4.13-a8968bf371130f39", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "6474732a344a1a3c98e4d8c98d30ccdc", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复冻结 XMAX 是恰好只有一个仍感兴趣成员的多事务的元组时可能的数据损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab694c3bb70fd6fde4eeb5967c2aae88de1df0f6d9ac2dd78243c1a738de097a"}, "url": "/docs/compare/?release=9.3.18#9.3.18-bc9d450fb60692a1", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}]}, {"id": "9.6.4-f0f476ef7aa8d71e", "cves": [], "html": "<p>避免在内存中排序超过十亿元组时的整数溢出和随之而来的崩溃（Sergey Koposov）</p>", "text": "避免在内存中排序超过十亿元组时的整数溢出和随之而来的崩溃（Sergey Koposov）", "title": "避免在内存中排序超过十亿元组时的整数溢出和随之而来的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "541e80fad328d6dee1dd55991fabe2d08452bf118a12a8a4aeadbf16c0584b0f", "section_path": ["变更"], "commit_groups": [["09c598898", "512f67c8d", "e439bbe99", "e7213fe2b"]], "identity_text": "Avoid integer overflow and ensuing crash when sorting more than one billion tuples in-memory (Sergey Koposov)", "commit_aliases": ["09c598898", "512f67c8d", "e439bbe99", "e7213fe2b"], "source_commits": ["09c598898"], "source_entry_id": "9.6.4/changes/007", "db_id": "8f2a8e25088893c45244d02df6d4dd5e", "patch_ids": ["7cc266f0440bc2eb93389b3c347bd928"], "statement_hash": "66733b6e883b70bf7c92d76432bcdb6b49f3b82d9d2c470fa5af34a84ac1f867", "relations": [{"rule": 2, "type": "equivalent", "target": "c313abe7f2c2b70205d0b9dd8b865cc4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "66733b6e883b70bf7c92d76432bcdb6b49f3b82d9d2c470fa5af34a84ac1f867"}}, {"rule": 2, "type": "equivalent", "target": "c79b5ef2db7e5f48b13859cb4c9543f3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "66733b6e883b70bf7c92d76432bcdb6b49f3b82d9d2c470fa5af34a84ac1f867"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c79b5ef2db7e5f48b13859cb4c9543f3", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "避免在内存中排序超过十亿元组时的整数溢出和随之而来的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "66733b6e883b70bf7c92d76432bcdb6b49f3b82d9d2c470fa5af34a84ac1f867"}, "url": "/docs/compare/?release=9.5.8#9.5.8-f0f476ef7aa8d71e", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "c313abe7f2c2b70205d0b9dd8b865cc4", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "避免在内存中排序超过十亿个元组时的整数溢出及随后的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "66733b6e883b70bf7c92d76432bcdb6b49f3b82d9d2c470fa5af34a84ac1f867"}, "url": "/docs/compare/?release=9.4.13#9.4.13-3f4a6ff5fb8a2faa", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}]}, {"id": "9.6.4-5dfe6c5122301e0b", "cves": [], "html": "<p>在 Windows 上，如果在新进程中为共享内存保留地址范围失败，则重试进程创建（Tom Lane、Amit Kapila）</p>\n<p>这有望修复可能由杀毒产品干扰导致的偶发子进程启动失败。</p>", "text": "在 Windows 上，如果在新进程中为共享内存保留地址范围失败，则重试进程创建（Tom Lane、Amit Kapila） 这有望修复可能由杀毒产品干扰导致的偶发子进程启动失败。", "title": "在 Windows 上，如果在新进程中为共享内存保留地址范围失败，则重试进程创建", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "7f521d12c52e70afd8b490cc6aac828ff23a60dc1799a2f5920aa3c912aced32", "section_path": ["变更"], "commit_groups": [["45e004fb4", "59892b120", "a4a590ee7", "afd1415a4", "bc0f76e7a", "c0077f738"]], "identity_text": "On Windows, retry process creation if we fail to reserve the address range for our shared memory in the new process (Tom Lane, Amit Kapila) This is expected to fix infrequent child-process-launch failures that are probably due to interference from antivirus products.", "commit_aliases": ["45e004fb4", "59892b120", "a4a590ee7", "afd1415a4", "bc0f76e7a", "c0077f738"], "source_commits": ["c0077f738"], "source_entry_id": "9.6.4/changes/008", "db_id": "6e4ce1f4ea2cf3f7543b8266c9528f74", "patch_ids": ["b74d93a86373714f7426593bffac644f"], "statement_hash": "d2139f207022c720ba8a40fe3f15d9d75de8244c43e8d5a66f48f9a2a377ac6d", "relations": [{"rule": 2, "type": "equivalent", "target": "1f54690bed7a1b61467c57f4ea6f33d6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2139f207022c720ba8a40fe3f15d9d75de8244c43e8d5a66f48f9a2a377ac6d"}}, {"rule": 2, "type": "equivalent", "target": "34e6cdf1912ffe330979dc21077c6288", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2139f207022c720ba8a40fe3f15d9d75de8244c43e8d5a66f48f9a2a377ac6d"}}, {"rule": 2, "type": "equivalent", "target": "a5446aca19df9fcf6d2f1d6ee8cecb2c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2139f207022c720ba8a40fe3f15d9d75de8244c43e8d5a66f48f9a2a377ac6d"}}, {"rule": 2, "type": "equivalent", "target": "faf48774cbb82fce5982d2b859f20fb1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2139f207022c720ba8a40fe3f15d9d75de8244c43e8d5a66f48f9a2a377ac6d"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "faf48774cbb82fce5982d2b859f20fb1", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "在 Windows 上，如果在新进程中为共享内存保留地址范围失败，则重试进程创建", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2139f207022c720ba8a40fe3f15d9d75de8244c43e8d5a66f48f9a2a377ac6d"}, "url": "/docs/compare/?release=9.5.8#9.5.8-5dfe6c5122301e0b", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "34e6cdf1912ffe330979dc21077c6288", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "在 Windows 上，如果在新进程中为共享内存保留地址范围失败，则重试进程创建", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2139f207022c720ba8a40fe3f15d9d75de8244c43e8d5a66f48f9a2a377ac6d"}, "url": "/docs/compare/?release=9.4.13#9.4.13-5dfe6c5122301e0b", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "1f54690bed7a1b61467c57f4ea6f33d6", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "在 Windows 上，如果在新进程中为共享内存保留地址范围失败，则重试进程创建", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2139f207022c720ba8a40fe3f15d9d75de8244c43e8d5a66f48f9a2a377ac6d"}, "url": "/docs/compare/?release=9.3.18#9.3.18-5dfe6c5122301e0b", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "a5446aca19df9fcf6d2f1d6ee8cecb2c", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "在 Windows 上，如果在新进程中为共享内存保留地址范围失败，则重试进程创建", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d2139f207022c720ba8a40fe3f15d9d75de8244c43e8d5a66f48f9a2a377ac6d"}, "url": "/docs/compare/?release=9.2.22#9.2.22-5dfe6c5122301e0b", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-2e59d8bea64c1b73", "cves": [], "html": "<p>修复 Windows 构建中共享谓词锁哈希表的低概率损坏（Thomas Munro、Tom Lane）</p>", "text": "修复 Windows 构建中共享谓词锁哈希表的低概率损坏（Thomas Munro、Tom Lane）", "title": "修复 Windows 构建中共享谓词锁哈希表的低概率损坏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "5a519671d888ec6701572c80c7ba2a4bdd3823334a0b1ef7c49c7e4c81d3b86a", "section_path": ["变更"], "commit_groups": [["05a562d9c", "4ecee1192", "5146ca352", "51865a0a0", "8ad35c7fa", "e2c8100e6"]], "identity_text": "Fix low-probability corruption of shared predicate-lock hash table in Windows builds (Thomas Munro, Tom Lane)", "commit_aliases": ["05a562d9c", "4ecee1192", "5146ca352", "51865a0a0", "8ad35c7fa", "e2c8100e6"], "source_commits": ["51865a0a0"], "source_entry_id": "9.6.4/changes/009", "db_id": "eb123644d0d25507fd759fba8b23f35d", "patch_ids": ["2395a1f67af6590cad3cd2a5136011ae"], "statement_hash": "146d59d36752d7bcca300d69ea802fadeb6f6b03b524e3a56baca197728b9c89", "relations": [{"rule": 2, "type": "equivalent", "target": "61aff00b2cbd0d0a19f4de9c64161e33", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "146d59d36752d7bcca300d69ea802fadeb6f6b03b524e3a56baca197728b9c89"}}, {"rule": 2, "type": "equivalent", "target": "6239e85838c4defd9c242c9736aac6dc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "146d59d36752d7bcca300d69ea802fadeb6f6b03b524e3a56baca197728b9c89"}}, {"rule": 2, "type": "equivalent", "target": "c80803c6d4d1147a93d5b23d67970907", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "146d59d36752d7bcca300d69ea802fadeb6f6b03b524e3a56baca197728b9c89"}}, {"rule": 2, "type": "equivalent", "target": "ccc80b8375366a40f739144083dec4bb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "146d59d36752d7bcca300d69ea802fadeb6f6b03b524e3a56baca197728b9c89"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c80803c6d4d1147a93d5b23d67970907", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 Windows 构建中共享谓词锁哈希表的低概率损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "146d59d36752d7bcca300d69ea802fadeb6f6b03b524e3a56baca197728b9c89"}, "url": "/docs/compare/?release=9.5.8#9.5.8-2e59d8bea64c1b73", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "6239e85838c4defd9c242c9736aac6dc", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复 Windows 构建中共享谓词锁哈希表低概率损坏的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "146d59d36752d7bcca300d69ea802fadeb6f6b03b524e3a56baca197728b9c89"}, "url": "/docs/compare/?release=9.4.13#9.4.13-cb90a7f53e5f1214", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "ccc80b8375366a40f739144083dec4bb", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复 Windows 构建中共享谓词锁哈希表的低概率损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "146d59d36752d7bcca300d69ea802fadeb6f6b03b524e3a56baca197728b9c89"}, "url": "/docs/compare/?release=9.3.18#9.3.18-2e59d8bea64c1b73", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "61aff00b2cbd0d0a19f4de9c64161e33", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 Windows 构建中共享谓词锁哈希表的低概率损坏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "146d59d36752d7bcca300d69ea802fadeb6f6b03b524e3a56baca197728b9c89"}, "url": "/docs/compare/?release=9.2.22#9.2.22-2e59d8bea64c1b73", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-63ce467ec91a76ba", "cves": [], "html": "<p>避免把 SSL 连接的干净关闭当作连接重置来记录（Michael Paquier）</p>", "text": "避免把 SSL 连接的干净关闭当作连接重置来记录（Michael Paquier）", "title": "避免把 SSL 连接的干净关闭当作连接重置来记录", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "abac77478c64370510a7b1dcf0867089805238ca637bc0e31c6ac47a4ac3b7f0", "section_path": ["变更"], "commit_groups": [["543e00bc1", "90630a6ad", "b93827c74", "f73382877", "fb1110085", "fb63a0aa3"]], "identity_text": "Avoid logging clean closure of an SSL connection as though it were a connection reset (Michael Paquier)", "commit_aliases": ["543e00bc1", "90630a6ad", "b93827c74", "f73382877", "fb1110085", "fb63a0aa3"], "source_commits": ["f73382877"], "source_entry_id": "9.6.4/changes/010", "db_id": "9f43dcd8e33a849f63af81136e8cffc4", "patch_ids": ["face2482352a41e5a4a5bcbd37e43ef3"], "statement_hash": "d246a67650b489515d0769bf3b9cfc3687bdf7c9a375177f21867e83ea52ae7e", "relations": [{"rule": 2, "type": "equivalent", "target": "4f1ca4a9b4544c5f9b0e201f593b00fb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d246a67650b489515d0769bf3b9cfc3687bdf7c9a375177f21867e83ea52ae7e"}}, {"rule": 2, "type": "equivalent", "target": "7890ed06f30afa11b324e730a77920d4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d246a67650b489515d0769bf3b9cfc3687bdf7c9a375177f21867e83ea52ae7e"}}, {"rule": 2, "type": "equivalent", "target": "796e639d993fe8aa9c00c2a6cb32a298", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d246a67650b489515d0769bf3b9cfc3687bdf7c9a375177f21867e83ea52ae7e"}}, {"rule": 2, "type": "equivalent", "target": "e26440dbe5fa41f21ec2cfb7ea515129", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d246a67650b489515d0769bf3b9cfc3687bdf7c9a375177f21867e83ea52ae7e"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7890ed06f30afa11b324e730a77920d4", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "避免把 SSL 连接的干净关闭当作连接重置来记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d246a67650b489515d0769bf3b9cfc3687bdf7c9a375177f21867e83ea52ae7e"}, "url": "/docs/compare/?release=9.5.8#9.5.8-63ce467ec91a76ba", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "4f1ca4a9b4544c5f9b0e201f593b00fb", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "避免把 SSL 连接的正常关闭记录成连接重置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d246a67650b489515d0769bf3b9cfc3687bdf7c9a375177f21867e83ea52ae7e"}, "url": "/docs/compare/?release=9.4.13#9.4.13-4aec39eb8163f31f", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "e26440dbe5fa41f21ec2cfb7ea515129", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "避免把 SSL 连接的干净关闭当作连接重置来记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d246a67650b489515d0769bf3b9cfc3687bdf7c9a375177f21867e83ea52ae7e"}, "url": "/docs/compare/?release=9.3.18#9.3.18-63ce467ec91a76ba", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "796e639d993fe8aa9c00c2a6cb32a298", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "避免把 SSL 连接的干净关闭当作连接重置来记录", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d246a67650b489515d0769bf3b9cfc3687bdf7c9a375177f21867e83ea52ae7e"}, "url": "/docs/compare/?release=9.2.22#9.2.22-63ce467ec91a76ba", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-e308e1857bff9246", "cves": [], "html": "<p>防止向客户端发送 SSL 会话票据（Tom Lane）</p>\n<p>此修复防止使用票据感知的客户端 SSL 代码时的重连失败。</p>", "text": "防止向客户端发送 SSL 会话票据（Tom Lane） 此修复防止使用票据感知的客户端 SSL 代码时的重连失败。", "title": "防止向客户端发送 SSL 会话票据", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "21ac1d5124c4ea3fc41770c74f9e99d0a2512690498191a7c8b755ecc3d0c6ab", "section_path": ["变更"], "commit_groups": [["8d05db3d8", "97d3a0b09", "b798ea88a", "bebee333c", "c180d2eb7", "dda04b9dd"]], "identity_text": "Prevent sending SSL session tickets to clients (Tom Lane) This fix prevents reconnection failures with ticket-aware client-side SSL code.", "commit_aliases": ["8d05db3d8", "97d3a0b09", "b798ea88a", "bebee333c", "c180d2eb7", "dda04b9dd"], "source_commits": ["b798ea88a"], "source_entry_id": "9.6.4/changes/011", "db_id": "a327202592f6a57881437263d94073b8", "patch_ids": ["2a35efab13129ecf89de431c57e945cb"], "statement_hash": "c3ba606e5da2e161568d30ca0d3743dcd89b79aaa70d26f32a7e248a302af3c5", "relations": [{"rule": 2, "type": "equivalent", "target": "06ca50c6c2100c6be604facd02221004", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c3ba606e5da2e161568d30ca0d3743dcd89b79aaa70d26f32a7e248a302af3c5"}}, {"rule": 2, "type": "equivalent", "target": "5417fe28a58f02892e6f851554b173dd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c3ba606e5da2e161568d30ca0d3743dcd89b79aaa70d26f32a7e248a302af3c5"}}, {"rule": 2, "type": "equivalent", "target": "57c80424a5c5a39644fe6b251c9bbd11", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c3ba606e5da2e161568d30ca0d3743dcd89b79aaa70d26f32a7e248a302af3c5"}}, {"rule": 2, "type": "equivalent", "target": "78fa3aaa5d85ae9fdccb058afe139d92", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c3ba606e5da2e161568d30ca0d3743dcd89b79aaa70d26f32a7e248a302af3c5"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "78fa3aaa5d85ae9fdccb058afe139d92", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "防止向客户端发送 SSL 会话票据", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c3ba606e5da2e161568d30ca0d3743dcd89b79aaa70d26f32a7e248a302af3c5"}, "url": "/docs/compare/?release=9.5.8#9.5.8-e308e1857bff9246", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "5417fe28a58f02892e6f851554b173dd", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "防止向客户端发送 SSL 会话票据", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c3ba606e5da2e161568d30ca0d3743dcd89b79aaa70d26f32a7e248a302af3c5"}, "url": "/docs/compare/?release=9.4.13#9.4.13-e308e1857bff9246", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "57c80424a5c5a39644fe6b251c9bbd11", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "防止向客户端发送 SSL 会话票据", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c3ba606e5da2e161568d30ca0d3743dcd89b79aaa70d26f32a7e248a302af3c5"}, "url": "/docs/compare/?release=9.3.18#9.3.18-e308e1857bff9246", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "06ca50c6c2100c6be604facd02221004", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "防止向客户端发送 SSL 会话票据", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c3ba606e5da2e161568d30ca0d3743dcd89b79aaa70d26f32a7e248a302af3c5"}, "url": "/docs/compare/?release=9.2.22#9.2.22-e308e1857bff9246", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-3e28052d9d329d76", "cves": [], "html": "<p>修复 Solaris 上设置<a href=\"/docs/9.6/runtime-config-connection.html#GUC-TCP-KEEPALIVES-IDLE\">tcp_keepalives_idle</a>的代码（Tom Lane）</p>", "text": "修复 Solaris 上设置tcp_keepalives_idle的代码（Tom Lane）", "title": "修复 Solaris 上设置tcp_keepalives_idle的代码", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "7b15d4e14c4a19150434cb5bc8d0d4741a9628d14f76aa78a60b6d2de0f5ae50", "section_path": ["变更"], "commit_groups": [["43c67e32f", "5e7447132", "63f5db8ab", "99255d73c", "cc154d9a0", "e97b7372b"], ["55968ed89", "6ccab9242", "9ce7f3919", "c2cb606a2", "d16e96fb2", "f0256c774"]], "identity_text": "Fix code for setting guc-tcp-keepalives-idle on Solaris (Tom Lane)", "commit_aliases": ["43c67e32f", "55968ed89", "5e7447132", "63f5db8ab", "6ccab9242", "99255d73c", "9ce7f3919", "c2cb606a2", "cc154d9a0", "d16e96fb2", "e97b7372b", "f0256c774"], "source_commits": ["43c67e32f", "55968ed89"], "source_entry_id": "9.6.4/changes/012", "db_id": "3d12e09651fa92dc3d7691e748c23b13", "patch_ids": ["668ac43fd58a3912d996276f17afb49c", "fdb987a76f5fb17da6a11846e2833fab"], "statement_hash": "03b9947723b04bb6932ea30bfe8dd413ceee29eeaf5f25f5db97c4e93ae4285a", "relations": [{"rule": 2, "type": "equivalent", "target": "1c7bb3243d9e68418b27efa10792167f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "03b9947723b04bb6932ea30bfe8dd413ceee29eeaf5f25f5db97c4e93ae4285a"}}, {"rule": 2, "type": "equivalent", "target": "ad20c605290795b78b75dfa2c7ca72c9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "03b9947723b04bb6932ea30bfe8dd413ceee29eeaf5f25f5db97c4e93ae4285a"}}, {"rule": 2, "type": "equivalent", "target": "b1f9de21bc12b73cf6518cf2a56f48d1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "03b9947723b04bb6932ea30bfe8dd413ceee29eeaf5f25f5db97c4e93ae4285a"}}, {"rule": 2, "type": "equivalent", "target": "edff4867a55a25f16f546d52b212e769", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "03b9947723b04bb6932ea30bfe8dd413ceee29eeaf5f25f5db97c4e93ae4285a"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1c7bb3243d9e68418b27efa10792167f", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 Solaris 上设置tcp_keepalives_idle的代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "03b9947723b04bb6932ea30bfe8dd413ceee29eeaf5f25f5db97c4e93ae4285a"}, "url": "/docs/compare/?release=9.5.8#9.5.8-3e28052d9d329d76", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "ad20c605290795b78b75dfa2c7ca72c9", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复 Solaris 上设置tcp_keepalives_idle的代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "03b9947723b04bb6932ea30bfe8dd413ceee29eeaf5f25f5db97c4e93ae4285a"}, "url": "/docs/compare/?release=9.4.13#9.4.13-3e28052d9d329d76", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "b1f9de21bc12b73cf6518cf2a56f48d1", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复 Solaris 上设置tcp_keepalives_idle的代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "03b9947723b04bb6932ea30bfe8dd413ceee29eeaf5f25f5db97c4e93ae4285a"}, "url": "/docs/compare/?release=9.3.18#9.3.18-3e28052d9d329d76", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "edff4867a55a25f16f546d52b212e769", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 Solaris 上设置tcp_keepalives_idle的代码", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "03b9947723b04bb6932ea30bfe8dd413ceee29eeaf5f25f5db97c4e93ae4285a"}, "url": "/docs/compare/?release=9.2.22#9.2.22-3e28052d9d329d76", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-57c375774ebad3a1", "cves": [], "html": "<p>修复统计收集器处理 postmaster 关闭并立即重启之后发出的查询消息（Tom Lane）</p>\n<p>在上一个 postmaster 关闭之后半秒内发出的统计查询实际上被忽略。</p>", "text": "修复统计收集器处理 postmaster 关闭并立即重启之后发出的查询消息（Tom Lane） 在上一个 postmaster 关闭之后半秒内发出的统计查询实际上被忽略。", "title": "修复统计收集器处理 postmaster 关闭并立即重启之后发出的查询消息", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "4e168b2b27f8718655e7cfe7f821d25fb3d2a0a51778670b0a6a286e4a2646be", "section_path": ["变更"], "commit_groups": [["439b6363d", "456bf261d", "5a6b95cdf", "ad1b5c842", "f6af9c749", "fc4da1fde"]], "identity_text": "Fix statistics collector to honor inquiry messages issued just after a postmaster shutdown and immediate restart (Tom Lane) Statistics inquiries issued within half a second of the previous postmaster shutdown were effectively ignored.", "commit_aliases": ["439b6363d", "456bf261d", "5a6b95cdf", "ad1b5c842", "f6af9c749", "fc4da1fde"], "source_commits": ["f6af9c749"], "source_entry_id": "9.6.4/changes/013", "db_id": "52169b7dd014d33786c85566c9719250", "patch_ids": ["6f195607863303b46b56c4d604788f16"], "statement_hash": "9a724c19bdc08f44a81e196f42b1ed6ab52256f9249bcd64373d65849332f3da", "relations": [{"rule": 2, "type": "equivalent", "target": "35d154df872964bdd172e06e7cc7b5e7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9a724c19bdc08f44a81e196f42b1ed6ab52256f9249bcd64373d65849332f3da"}}, {"rule": 2, "type": "equivalent", "target": "6ea6bdb3b1c0b91370098bb4050cdf5a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9a724c19bdc08f44a81e196f42b1ed6ab52256f9249bcd64373d65849332f3da"}}, {"rule": 2, "type": "equivalent", "target": "c7939f5f09e159955353f7b29c36efbb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9a724c19bdc08f44a81e196f42b1ed6ab52256f9249bcd64373d65849332f3da"}}, {"rule": 2, "type": "equivalent", "target": "e6cd54250e39c6ba75fa8dfed50a9202", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9a724c19bdc08f44a81e196f42b1ed6ab52256f9249bcd64373d65849332f3da"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c7939f5f09e159955353f7b29c36efbb", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复统计收集器处理 postmaster 关闭并立即重启之后发出的查询消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9a724c19bdc08f44a81e196f42b1ed6ab52256f9249bcd64373d65849332f3da"}, "url": "/docs/compare/?release=9.5.8#9.5.8-57c375774ebad3a1", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "35d154df872964bdd172e06e7cc7b5e7", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复统计收集器处理 postmaster 关闭并立即重启之后发出的查询消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9a724c19bdc08f44a81e196f42b1ed6ab52256f9249bcd64373d65849332f3da"}, "url": "/docs/compare/?release=9.4.13#9.4.13-57c375774ebad3a1", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "e6cd54250e39c6ba75fa8dfed50a9202", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复统计收集器处理 postmaster 关闭并立即重启之后发出的查询消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9a724c19bdc08f44a81e196f42b1ed6ab52256f9249bcd64373d65849332f3da"}, "url": "/docs/compare/?release=9.3.18#9.3.18-57c375774ebad3a1", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "6ea6bdb3b1c0b91370098bb4050cdf5a", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复统计收集器处理 postmaster 关闭并立即重启之后发出的查询消息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9a724c19bdc08f44a81e196f42b1ed6ab52256f9249bcd64373d65849332f3da"}, "url": "/docs/compare/?release=9.2.22#9.2.22-57c375774ebad3a1", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-20b9745916abac09", "cves": [], "html": "<p>确保统计收集器的接收缓冲区大小至少为 100KB（Tom Lane）</p>\n<p>这降低了默认接收缓冲区大小小于该值的老平台上统计数据丢失的风险。</p>", "text": "确保统计收集器的接收缓冲区大小至少为 100KB（Tom Lane） 这降低了默认接收缓冲区大小小于该值的老平台上统计数据丢失的风险。", "title": "确保统计收集器的接收缓冲区大小至少为 100KB", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "9ae055c3a511149eb03ea0333f9d010abb95f19e3cfd2f5a597c7d84666864aa", "section_path": ["变更"], "commit_groups": [["34782a348", "364100e0b", "4a3bb96ce", "54676c72c", "82f8c21e0", "8b0b6303e"]], "identity_text": "Ensure that the statistics collector's receive buffer size is at least 100KB (Tom Lane) This reduces the risk of dropped statistics data on older platforms whose default receive buffer size is less than that.", "commit_aliases": ["34782a348", "364100e0b", "4a3bb96ce", "54676c72c", "82f8c21e0", "8b0b6303e"], "source_commits": ["34782a348"], "source_entry_id": "9.6.4/changes/014", "db_id": "35b5f7b5058aa8d2a991d9b4a8b37c93", "patch_ids": ["40e517cfa613647c00d7fcb786753808"], "statement_hash": "ae98eb03d931632b6d6e716835257b5b32dac76f778e840398a512fcca98ca28", "relations": [{"rule": 2, "type": "equivalent", "target": "3c2dba8fca8015ec95edd7b7e1ef5a4e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae98eb03d931632b6d6e716835257b5b32dac76f778e840398a512fcca98ca28"}}, {"rule": 2, "type": "equivalent", "target": "45f8a1f14d7479817e647f93ea3147f0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae98eb03d931632b6d6e716835257b5b32dac76f778e840398a512fcca98ca28"}}, {"rule": 2, "type": "equivalent", "target": "8aec425eef081d0f371de4d506db4c6d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae98eb03d931632b6d6e716835257b5b32dac76f778e840398a512fcca98ca28"}}, {"rule": 2, "type": "equivalent", "target": "cebabf83bae7e2378ddea14ff545ac6f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae98eb03d931632b6d6e716835257b5b32dac76f778e840398a512fcca98ca28"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "45f8a1f14d7479817e647f93ea3147f0", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "确保统计收集器的接收缓冲区大小至少为 100KB", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae98eb03d931632b6d6e716835257b5b32dac76f778e840398a512fcca98ca28"}, "url": "/docs/compare/?release=9.5.8#9.5.8-20b9745916abac09", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "8aec425eef081d0f371de4d506db4c6d", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "确保统计收集器的接收缓冲区大小至少为 100KB", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae98eb03d931632b6d6e716835257b5b32dac76f778e840398a512fcca98ca28"}, "url": "/docs/compare/?release=9.4.13#9.4.13-20b9745916abac09", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "3c2dba8fca8015ec95edd7b7e1ef5a4e", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "确保统计收集器的接收缓冲区大小至少为 100KB", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae98eb03d931632b6d6e716835257b5b32dac76f778e840398a512fcca98ca28"}, "url": "/docs/compare/?release=9.3.18#9.3.18-20b9745916abac09", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "cebabf83bae7e2378ddea14ff545ac6f", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "确保统计收集器的接收缓冲区大小至少为 100KB", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ae98eb03d931632b6d6e716835257b5b32dac76f778e840398a512fcca98ca28"}, "url": "/docs/compare/?release=9.2.22#9.2.22-20b9745916abac09", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-b0bf0f68f2bb1135", "cves": [], "html": "<p>修复备库刚处理完 <code>XLOG_SWITCH</code> WAL 记录后被提升时可能创建无效 WAL 段的问题（Andres Freund）</p>", "text": "修复备库刚处理完 XLOG_SWITCH WAL 记录后被提升时可能创建无效 WAL 段的问题（Andres Freund）", "title": "修复备库刚处理完 XLOG_SWITCH WAL 记录后被提升时可能创建无效 WAL 段的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "3a0067a6b20f36434d423fd791fd84e2f8b3d3eaa9e678cd2f41b9718192784d", "section_path": ["变更"], "commit_groups": [["39e30cbc1", "511d803ca", "7775ebaf0", "81bf7b5b1", "823a51ed3", "fb886c153"]], "identity_text": "Fix possible creation of an invalid WAL segment when a standby is promoted just after it processes an XLOG_SWITCH WAL record (Andres Freund)", "commit_aliases": ["39e30cbc1", "511d803ca", "7775ebaf0", "81bf7b5b1", "823a51ed3", "fb886c153"], "source_commits": ["39e30cbc1"], "source_entry_id": "9.6.4/changes/015", "db_id": "2f2e0bd47f601d6acf0caa11807655ce", "patch_ids": ["421aa20d97248f7a7c601872632aa5ad"], "statement_hash": "ba014dc0e788386a8df4ba006edab727e81e02d48fe4daa3f57744df51695805", "relations": [{"rule": 2, "type": "equivalent", "target": "027472daca45d7d3ca1dda4accfbe514", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba014dc0e788386a8df4ba006edab727e81e02d48fe4daa3f57744df51695805"}}, {"rule": 2, "type": "equivalent", "target": "1ebe514120103dc5eb1fb4461713c100", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba014dc0e788386a8df4ba006edab727e81e02d48fe4daa3f57744df51695805"}}, {"rule": 2, "type": "equivalent", "target": "3343b117e454cf984aadbcbf1c224c1b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba014dc0e788386a8df4ba006edab727e81e02d48fe4daa3f57744df51695805"}}, {"rule": 2, "type": "equivalent", "target": "a167acf8e40e68b1306d951f121d3e0f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba014dc0e788386a8df4ba006edab727e81e02d48fe4daa3f57744df51695805"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3343b117e454cf984aadbcbf1c224c1b", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复备库刚处理完 XLOG_SWITCH WAL 记录后被提升时可能创建无效 WAL 段的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba014dc0e788386a8df4ba006edab727e81e02d48fe4daa3f57744df51695805"}, "url": "/docs/compare/?release=9.5.8#9.5.8-b0bf0f68f2bb1135", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "1ebe514120103dc5eb1fb4461713c100", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复备库在刚处理完XLOG_SWITCHWAL 记录后被提升时可能创建无效 WAL 段的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba014dc0e788386a8df4ba006edab727e81e02d48fe4daa3f57744df51695805"}, "url": "/docs/compare/?release=9.4.13#9.4.13-11f60c94267d3d32", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "027472daca45d7d3ca1dda4accfbe514", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复备库刚处理完 XLOG_SWITCH WAL 记录后被提升时可能创建无效 WAL 段的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba014dc0e788386a8df4ba006edab727e81e02d48fe4daa3f57744df51695805"}, "url": "/docs/compare/?release=9.3.18#9.3.18-b0bf0f68f2bb1135", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "a167acf8e40e68b1306d951f121d3e0f", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复备库刚处理完 XLOG_SWITCH WAL 记录后被提升时可能创建无效 WAL 段的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ba014dc0e788386a8df4ba006edab727e81e02d48fe4daa3f57744df51695805"}, "url": "/docs/compare/?release=9.2.22#9.2.22-b0bf0f68f2bb1135", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-fb971341db0b6229", "cves": [], "html": "<p>修复 <span>walsender</span> 在客户端请求关闭时及时退出（Tom Lane）</p>", "text": "修复 walsender 在客户端请求关闭时及时退出（Tom Lane）", "title": "修复 walsender 在客户端请求关闭时及时退出", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "703c42134b4fbe7790d05e13eee8f8e2e56d9cca3441e87b074af602491c624a", "section_path": ["变更"], "commit_groups": [["446914f6b", "5aa8db014", "e9d4aa594", "fca85f8ef"]], "identity_text": "Fix walsender to exit promptly when client requests shutdown (Tom Lane)", "commit_aliases": ["446914f6b", "5aa8db014", "e9d4aa594", "fca85f8ef"], "source_commits": ["e9d4aa594"], "source_entry_id": "9.6.4/changes/016", "db_id": "b4c262940ae6a047aa44b1ffd849c50c", "patch_ids": ["effcee447c250432a2fb7b3c4dba27e0"], "statement_hash": "7f8393494213a60a77074fc87c756e548bf7ca61c988d3753552f3f3a7dcf48d", "relations": [{"rule": 2, "type": "equivalent", "target": "e06757cdf0b4c4fc2feefbd345efbaf0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7f8393494213a60a77074fc87c756e548bf7ca61c988d3753552f3f3a7dcf48d"}}, {"rule": 2, "type": "equivalent", "target": "eeebdf3f87802a2e37f71e8656f2d240", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7f8393494213a60a77074fc87c756e548bf7ca61c988d3753552f3f3a7dcf48d"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e06757cdf0b4c4fc2feefbd345efbaf0", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 walsender 在客户端请求关闭时及时退出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7f8393494213a60a77074fc87c756e548bf7ca61c988d3753552f3f3a7dcf48d"}, "url": "/docs/compare/?release=9.5.8#9.5.8-fb971341db0b6229", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "eeebdf3f87802a2e37f71e8656f2d240", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复walsender在客户端请求关闭时及时退出的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7f8393494213a60a77074fc87c756e548bf7ca61c988d3753552f3f3a7dcf48d"}, "url": "/docs/compare/?release=9.4.13#9.4.13-d723a2caedd169b7", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}]}, {"id": "9.6.4-7869db2756522ed5", "cves": [], "html": "<p>修复 walsender 进程中的 <span>SIGHUP</span> 和 <span>SIGUSR1</span> 处理（Petr Jelinek、Andres Freund）</p>", "text": "修复 walsender 进程中的 SIGHUP 和 SIGUSR1 处理（Petr Jelinek、Andres Freund）", "title": "修复 walsender 进程中的 SIGHUP 和 SIGUSR1 处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "980bcb8f78ecd8a583d11c4c4e6f8a95ea9f950d6992864611afe72fa3fa50a4", "section_path": ["变更"], "commit_groups": [["133b1920c", "45d067d50", "55d7027d5", "641a60b02", "6e1dd2773", "b8bd32a51"], ["47fd420fb", "b3d5b6833", "e1319f64e", "f4e484dd0"]], "identity_text": "Fix SIGHUP and SIGUSR1 handling in walsender processes (Petr Jelinek, Andres Freund)", "commit_aliases": ["133b1920c", "45d067d50", "47fd420fb", "55d7027d5", "641a60b02", "6e1dd2773", "b3d5b6833", "b8bd32a51", "e1319f64e", "f4e484dd0"], "source_commits": ["b3d5b6833", "b8bd32a51"], "source_entry_id": "9.6.4/changes/017", "db_id": "3a37a29c34d6f5d73ccb334bdba07088", "patch_ids": ["889575634527a56d0b301382cee50367", "d3479e813b85e485501e6c7187e51e1d"], "statement_hash": "d54f1cf1421f9b2f8f6071ef527eaa84099cd41597a1402c579436e93f1855a1", "relations": [{"rule": 2, "type": "equivalent", "target": "56fbd01576e12b75269896592fa2c8c7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d54f1cf1421f9b2f8f6071ef527eaa84099cd41597a1402c579436e93f1855a1"}}, {"rule": 2, "type": "equivalent", "target": "e495da6486bd8be4e4c26d6e5086beee", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d54f1cf1421f9b2f8f6071ef527eaa84099cd41597a1402c579436e93f1855a1"}}, {"rule": 2, "type": "equivalent", "target": "ff38a637d151641073b6f2871680809f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d54f1cf1421f9b2f8f6071ef527eaa84099cd41597a1402c579436e93f1855a1"}}, {"rule": 2, "type": "equivalent", "target": "ff55a48b73c00e42d28e3b52fe55af78", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d54f1cf1421f9b2f8f6071ef527eaa84099cd41597a1402c579436e93f1855a1"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ff55a48b73c00e42d28e3b52fe55af78", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 walsender 进程中的 SIGHUP 和 SIGUSR1 处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d54f1cf1421f9b2f8f6071ef527eaa84099cd41597a1402c579436e93f1855a1"}, "url": "/docs/compare/?release=9.5.8#9.5.8-7869db2756522ed5", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "56fbd01576e12b75269896592fa2c8c7", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复 walsender 进程中SIGHUP和SIGUSR1的处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d54f1cf1421f9b2f8f6071ef527eaa84099cd41597a1402c579436e93f1855a1"}, "url": "/docs/compare/?release=9.4.13#9.4.13-e99abd2807b726be", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "e495da6486bd8be4e4c26d6e5086beee", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复 walsender 进程中的 SIGHUP 和 SIGUSR1 处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d54f1cf1421f9b2f8f6071ef527eaa84099cd41597a1402c579436e93f1855a1"}, "url": "/docs/compare/?release=9.3.18#9.3.18-7869db2756522ed5", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "ff38a637d151641073b6f2871680809f", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 walsender 进程中的 SIGHUP 和 SIGUSR1 处理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d54f1cf1421f9b2f8f6071ef527eaa84099cd41597a1402c579436e93f1855a1"}, "url": "/docs/compare/?release=9.2.22#9.2.22-7869db2756522ed5", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-7538ac1b880fb3d7", "cves": [], "html": "<p>防止关闭检查点期间 walsender 引发的 panic（Andres Freund、Michael Paquier）</p>", "text": "防止关闭检查点期间 walsender 引发的 panic（Andres Freund、Michael Paquier）", "title": "防止关闭检查点期间 walsender 引发的 panic", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "c2ce76ebc0da19a3cf23a6ba812b18d30a25ca71522c54813ba550681f528c24", "section_path": ["变更"], "commit_groups": [["1cdc0ab9c", "50581f2e7", "862204aac", "c6c333436"]], "identity_text": "Prevent walsender-triggered panics during shutdown checkpoints (Andres Freund, Michael Paquier)", "commit_aliases": ["1cdc0ab9c", "50581f2e7", "862204aac", "c6c333436"], "source_commits": ["862204aac"], "source_entry_id": "9.6.4/changes/018", "db_id": "634c8d381b6e3f48b2f72cf06ca6263a", "patch_ids": ["327b3bfc49bbee1814b4d056879a56a4"], "statement_hash": "9ddb5d7e644130bd1b9e0dfccdb7af7a6670dc33b1f39dcc366c7a4167442ee8", "relations": [{"rule": 2, "type": "equivalent", "target": "17f194ee6ed4e5a40eccd7995c55c96e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9ddb5d7e644130bd1b9e0dfccdb7af7a6670dc33b1f39dcc366c7a4167442ee8"}}, {"rule": 2, "type": "equivalent", "target": "deb92a2f6715b1015ae787db10ac0e6f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9ddb5d7e644130bd1b9e0dfccdb7af7a6670dc33b1f39dcc366c7a4167442ee8"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "17f194ee6ed4e5a40eccd7995c55c96e", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "防止关闭检查点期间 walsender 引发的 panic", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9ddb5d7e644130bd1b9e0dfccdb7af7a6670dc33b1f39dcc366c7a4167442ee8"}, "url": "/docs/compare/?release=9.5.8#9.5.8-7538ac1b880fb3d7", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "deb92a2f6715b1015ae787db10ac0e6f", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "防止关闭检查点期间由 walsender 触发的 panic", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9ddb5d7e644130bd1b9e0dfccdb7af7a6670dc33b1f39dcc366c7a4167442ee8"}, "url": "/docs/compare/?release=9.4.13#9.4.13-9445823d3444455f", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}]}, {"id": "9.6.4-d0bce37763b84970", "cves": [], "html": "<p>修复 postmaster 中竞态条件导致的 <span>walreceiver</span> 进程不必要的缓慢重启（Tom Lane）</p>", "text": "修复 postmaster 中竞态条件导致的 walreceiver 进程不必要的缓慢重启（Tom Lane）", "title": "修复 postmaster 中竞态条件导致的 walreceiver 进程不必要的缓慢重启", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "a35db3ab53f6e97d2b5677fb7aecf82c184bd5a4c4ed4e8576901af95e94a10f", "section_path": ["变更"], "commit_groups": [["47fec424c", "a4d1ce095", "cb59949f6", "dc311b5bd", "e5d494d78", "e96adaacd"]], "identity_text": "Fix unnecessarily slow restarts of walreceiver processes due to race condition in postmaster (Tom Lane)", "commit_aliases": ["47fec424c", "a4d1ce095", "cb59949f6", "dc311b5bd", "e5d494d78", "e96adaacd"], "source_commits": ["a4d1ce095"], "source_entry_id": "9.6.4/changes/019", "db_id": "56bb12dabc419c87a27717fa34bb3be3", "patch_ids": ["8311b2122ee6742525858fbe6e18d904"], "statement_hash": "006bac9dacd1622bc6ddd16acc61ae5fae33eb710b4ea23f3bd2b6df434667b6", "relations": [{"rule": 2, "type": "equivalent", "target": "0cb3087fae06393bc7f76e6cbe7ded78", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006bac9dacd1622bc6ddd16acc61ae5fae33eb710b4ea23f3bd2b6df434667b6"}}, {"rule": 2, "type": "equivalent", "target": "2c27a0f6cff6d52384428eb46e816ad6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006bac9dacd1622bc6ddd16acc61ae5fae33eb710b4ea23f3bd2b6df434667b6"}}, {"rule": 2, "type": "equivalent", "target": "bc1b64b2ca3671e5b73d363e398be023", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006bac9dacd1622bc6ddd16acc61ae5fae33eb710b4ea23f3bd2b6df434667b6"}}, {"rule": 2, "type": "equivalent", "target": "df6bb339b676af9421fec5b435f41df0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006bac9dacd1622bc6ddd16acc61ae5fae33eb710b4ea23f3bd2b6df434667b6"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "0cb3087fae06393bc7f76e6cbe7ded78", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 postmaster 中竞态条件导致的 walreceiver 进程不必要的缓慢重启", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006bac9dacd1622bc6ddd16acc61ae5fae33eb710b4ea23f3bd2b6df434667b6"}, "url": "/docs/compare/?release=9.5.8#9.5.8-d0bce37763b84970", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "2c27a0f6cff6d52384428eb46e816ad6", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复因 postmaster 中的竞争条件导致walreceiver进程不必要地缓慢重启的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006bac9dacd1622bc6ddd16acc61ae5fae33eb710b4ea23f3bd2b6df434667b6"}, "url": "/docs/compare/?release=9.4.13#9.4.13-d83eb4212e3c77c6", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "bc1b64b2ca3671e5b73d363e398be023", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复 postmaster 中竞态条件导致的 walreceiver 进程不必要的缓慢重启", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006bac9dacd1622bc6ddd16acc61ae5fae33eb710b4ea23f3bd2b6df434667b6"}, "url": "/docs/compare/?release=9.3.18#9.3.18-d0bce37763b84970", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "df6bb339b676af9421fec5b435f41df0", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 postmaster 中竞态条件导致的 walreceiver 进程不必要的缓慢重启", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "006bac9dacd1622bc6ddd16acc61ae5fae33eb710b4ea23f3bd2b6df434667b6"}, "url": "/docs/compare/?release=9.2.22#9.2.22-d0bce37763b84970", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-e8d0ac46581d767c", "cves": [], "html": "<p>修复逻辑解码期间溢出到磁盘的小子事务的泄漏（Andres Freund）</p>\n<p>这导致临时文件消耗过多的磁盘空间。</p>", "text": "修复逻辑解码期间溢出到磁盘的小子事务的泄漏（Andres Freund） 这导致临时文件消耗过多的磁盘空间。", "title": "修复逻辑解码期间溢出到磁盘的小子事务的泄漏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "550a94b36e646d831b47e8618ed1fd5d3fe2029f920f4f306d408b44cea78353", "section_path": ["变更"], "commit_groups": [["1ba1adf77", "3bdea167e", "810344436", "a27c566c7"]], "identity_text": "Fix leakage of small subtransactions spilled to disk during logical decoding (Andres Freund) This resulted in temporary files consuming excessive disk space.", "commit_aliases": ["1ba1adf77", "3bdea167e", "810344436", "a27c566c7"], "source_commits": ["810344436"], "source_entry_id": "9.6.4/changes/020", "db_id": "a6cfaf92275141eab37eda7b8429909b", "patch_ids": ["94057599efb1dbcc7f9fd36d3335e053"], "statement_hash": "2d56855e272cbf811c9187a501574da0e6a723b96bcef42c5aebfe63cf6f5b11", "relations": [{"rule": 2, "type": "equivalent", "target": "83b7a373448e5e2dbe493321301f4153", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d56855e272cbf811c9187a501574da0e6a723b96bcef42c5aebfe63cf6f5b11"}}, {"rule": 2, "type": "equivalent", "target": "99766b865005e04787c4cac0bc8e398a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d56855e272cbf811c9187a501574da0e6a723b96bcef42c5aebfe63cf6f5b11"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "99766b865005e04787c4cac0bc8e398a", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复逻辑解码期间溢出到磁盘的小子事务的泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d56855e272cbf811c9187a501574da0e6a723b96bcef42c5aebfe63cf6f5b11"}, "url": "/docs/compare/?release=9.5.8#9.5.8-e8d0ac46581d767c", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "83b7a373448e5e2dbe493321301f4153", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复逻辑解码期间溢出到磁盘的小子事务的泄漏", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2d56855e272cbf811c9187a501574da0e6a723b96bcef42c5aebfe63cf6f5b11"}, "url": "/docs/compare/?release=9.4.13#9.4.13-e8d0ac46581d767c", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}]}, {"id": "9.6.4-c479337ad1bc7f1a", "cves": [], "html": "<p>减少创建逻辑解码槽期间构建快照所需的工作（Andres Freund、Petr Jelinek）</p>\n<p>原来的算法在有大量打开事务的服务器上昂贵得不可行。</p>", "text": "减少创建逻辑解码槽期间构建快照所需的工作（Andres Freund、Petr Jelinek） 原来的算法在有大量打开事务的服务器上昂贵得不可行。", "title": "减少创建逻辑解码槽期间构建快照所需的工作", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "bec3705085599176727f2bfa076d6ec9a9b0e778b4fe39569ceb46de44d89f09", "section_path": ["变更"], "commit_groups": [["2dca50b76", "524dbc143", "bd619fcfe", "fa9207c74"]], "identity_text": "Reduce the work needed to build snapshots during creation of logical-decoding slots (Andres Freund, Petr Jelinek) The previous algorithm was infeasibly expensive on a server with a lot of open transactions.", "commit_aliases": ["2dca50b76", "524dbc143", "bd619fcfe", "fa9207c74"], "source_commits": ["bd619fcfe"], "source_entry_id": "9.6.4/changes/021", "db_id": "b8a11c910d610dccc2bd1dc476d11176", "patch_ids": ["4031ff45c87ec6ee5472c4b0f3283490"], "statement_hash": "7e853ed9955167fd1d4fd2378e643bafe18c458682dc9565fea7e994e5ab4ae8", "relations": [{"rule": 2, "type": "equivalent", "target": "15b44a9b10ca7ce5cb5e957d44369fb4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e853ed9955167fd1d4fd2378e643bafe18c458682dc9565fea7e994e5ab4ae8"}}, {"rule": 2, "type": "equivalent", "target": "33384454e81715c22843b0616b92d18d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e853ed9955167fd1d4fd2378e643bafe18c458682dc9565fea7e994e5ab4ae8"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "33384454e81715c22843b0616b92d18d", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "减少创建逻辑解码槽期间构建快照所需的工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e853ed9955167fd1d4fd2378e643bafe18c458682dc9565fea7e994e5ab4ae8"}, "url": "/docs/compare/?release=9.5.8#9.5.8-c479337ad1bc7f1a", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "15b44a9b10ca7ce5cb5e957d44369fb4", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "减少创建逻辑解码槽期间构建快照所需的工作", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e853ed9955167fd1d4fd2378e643bafe18c458682dc9565fea7e994e5ab4ae8"}, "url": "/docs/compare/?release=9.4.13#9.4.13-c479337ad1bc7f1a", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}]}, {"id": "9.6.4-9f98d3b6f6cf455b", "cves": [], "html": "<p>修复可能无限延迟逻辑解码槽创建的竞态条件（Andres Freund、Petr Jelinek）</p>", "text": "修复可能无限延迟逻辑解码槽创建的竞态条件（Andres Freund、Petr Jelinek）", "title": "修复可能无限延迟逻辑解码槽创建的竞态条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "6f2923d0156404723962bd9a7026e302a961f2c88cebf887f8eea112e6ca51bc", "section_path": ["变更"], "commit_groups": [["75784859c", "79abd23db", "955a684e0", "b64a68e36"]], "identity_text": "Fix race condition that could indefinitely delay creation of logical-decoding slots (Andres Freund, Petr Jelinek)", "commit_aliases": ["75784859c", "79abd23db", "955a684e0", "b64a68e36"], "source_commits": ["75784859c"], "source_entry_id": "9.6.4/changes/022", "db_id": "6c4da68e4e4f3dd2fb4c473173e089fa", "patch_ids": ["f965770d8244bb95e710794ee333e104"], "statement_hash": "fa71776f01ce72bd84b9da503f864b04e2789ba0380f754d691ffdf34c00b799", "relations": [{"rule": 2, "type": "equivalent", "target": "241594f43042d7fe2d5e726d2158c1ed", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fa71776f01ce72bd84b9da503f864b04e2789ba0380f754d691ffdf34c00b799"}}, {"rule": 2, "type": "equivalent", "target": "fd678af83e000d78c66b5bea6d63ed7f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fa71776f01ce72bd84b9da503f864b04e2789ba0380f754d691ffdf34c00b799"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "fd678af83e000d78c66b5bea6d63ed7f", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复可能无限延迟逻辑解码槽创建的竞态条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fa71776f01ce72bd84b9da503f864b04e2789ba0380f754d691ffdf34c00b799"}, "url": "/docs/compare/?release=9.5.8#9.5.8-9f98d3b6f6cf455b", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "241594f43042d7fe2d5e726d2158c1ed", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复可能无限延迟逻辑解码槽创建的竞争条件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "fa71776f01ce72bd84b9da503f864b04e2789ba0380f754d691ffdf34c00b799"}, "url": "/docs/compare/?release=9.4.13#9.4.13-5f2a38a94f54c5d8", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}]}, {"id": "9.6.4-22ba7720b4866475", "cves": [], "html": "<p>减少处理系统缓存失效事件的开销（Tom Lane）</p>\n<p>这对逻辑解码特别有帮助，它触发频繁的缓存失效。</p>", "text": "减少处理系统缓存失效事件的开销（Tom Lane） 这对逻辑解码特别有帮助，它触发频繁的缓存失效。", "title": "减少处理系统缓存失效事件的开销", "commits": [], "section": "变更", "category": "performance", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "bc859d1fe23fdfd9fa189bba2fe11ed940243c77345c9f8e5a14b6798c49694e", "section_path": ["变更"], "commit_groups": [["2df5d4655", "32900700f", "d0755dc32", "e7955ac64"], ["3569a9a73", "50ee1c746", "64417f8d3", "b7a98b14c"], ["8085a4f75", "8a7506e04", "ef7a6b3c9", "f7d0a31ce"]], "identity_text": "Reduce overhead in processing syscache invalidation events (Tom Lane) This is particularly helpful for logical decoding, which triggers frequent cache invalidation.", "commit_aliases": ["2df5d4655", "32900700f", "3569a9a73", "50ee1c746", "64417f8d3", "8085a4f75", "8a7506e04", "b7a98b14c", "d0755dc32", "e7955ac64", "ef7a6b3c9", "f7d0a31ce"], "source_commits": ["b7a98b14c", "d0755dc32", "f7d0a31ce"], "source_entry_id": "9.6.4/changes/023", "db_id": "cb6098913420bc02bb212c22159f5bee", "patch_ids": ["c82fa2d9dc7ec336ffcc643f59e0c553", "dfe9e7112660bcb6f8921f2b5f7b07a8", "e7556589209c71b39e9654196655309a"], "statement_hash": "e4e7d3dde1821162b5013245696c48bafbd1faa4fd805477573013ae89c09c45", "relations": [{"rule": 2, "type": "equivalent", "target": "bf99a386833723ff946300f5929aae22", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4e7d3dde1821162b5013245696c48bafbd1faa4fd805477573013ae89c09c45"}}, {"rule": 2, "type": "equivalent", "target": "f27af57530d241c400aecae8d3be0cd0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4e7d3dde1821162b5013245696c48bafbd1faa4fd805477573013ae89c09c45"}}], "version": "9.6.4", "category_label": "性能改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f27af57530d241c400aecae8d3be0cd0", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "减少处理系统缓存失效事件的开销", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4e7d3dde1821162b5013245696c48bafbd1faa4fd805477573013ae89c09c45"}, "url": "/docs/compare/?release=9.5.8#9.5.8-22ba7720b4866475", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "bf99a386833723ff946300f5929aae22", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "减少处理系统缓存失效事件的开销", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4e7d3dde1821162b5013245696c48bafbd1faa4fd805477573013ae89c09c45"}, "url": "/docs/compare/?release=9.4.13#9.4.13-22ba7720b4866475", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}]}, {"id": "9.6.4-bec20635857f4429", "cves": [], "html": "<p>移除某些情况下基于外键约束存在估计连接选择率时使用的不正确启发式（David Rowley）</p>\n<p>在存在多列外键约束但不完全匹配查询连接结构的某些情况下，规划器使用了一种结果完全不好的估计启发式。把这种情况恢复到 9.6 之前的估计方式。</p>", "text": "移除某些情况下基于外键约束存在估计连接选择率时使用的不正确启发式（David Rowley） 在存在多列外键约束但不完全匹配查询连接结构的某些情况下，规划器使用了一种结果完全不好的估计启发式。把这种情况恢复到 9.6 之前的估计方式。", "title": "移除某些情况下基于外键约束存在估计连接选择率时使用的不正确启发式", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "e8fa1f3b49efb9c53f0d8bcf68bb9635486015cd1351742cc4b01f0aaef84893", "section_path": ["变更"], "commit_groups": [["1f184426b", "d8e6b84bd"]], "identity_text": "Remove incorrect heuristic used in some cases to estimate join selectivity based on the presence of foreign-key constraints (David Rowley) In some cases where a multi-column foreign key constraint existed but did not exactly match a query's join structure, the planner used an estimation heuristic that turns out not to work well at all. Revert such cases to the way they were estimated before 9.6.", "commit_aliases": ["1f184426b", "d8e6b84bd"], "source_commits": ["1f184426b"], "source_entry_id": "9.6.4/changes/024", "db_id": "dbb92701e90210400d63f2871b87f4f5", "patch_ids": ["64562b53161bc7186a1d8b5f084a663e"], "statement_hash": "475d16d6942a6d35b745bebd64845e934aabd86069c9ad7208d42af3d1025800", "relations": [], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.4-d20765897a51eeb2", "cves": [], "html": "<p>修复 <code>INSERT</code> 或 <code>UPDATE</code> 对数组之上域类型的列的多个元素赋值的情况（Tom Lane）</p>", "text": "修复 INSERT 或 UPDATE 对数组之上域类型的列的多个元素赋值的情况（Tom Lane）", "title": "修复 INSERT 或 UPDATE 对数组之上域类型的列的多个元素赋值的情况", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "aee4b8d67f25768a4e7d4d8b8556b4a398e066673246d86a0d528a8b95ddb05d", "section_path": ["变更"], "commit_groups": [["123368061", "521fede16", "55204850a", "56076b88d", "a8358559e", "b1cb32fb6"], ["2346f1c10", "75670ec37", "a2320b337", "aea1a3f0e", "bc2d716ad", "ff2d53722"]], "identity_text": "Fix cases where an INSERT or UPDATE assigns to more than one element of a column that is of domain-over-array type (Tom Lane)", "commit_aliases": ["123368061", "2346f1c10", "521fede16", "55204850a", "56076b88d", "75670ec37", "a2320b337", "a8358559e", "aea1a3f0e", "b1cb32fb6", "bc2d716ad", "ff2d53722"], "source_commits": ["123368061", "ff2d53722"], "source_entry_id": "9.6.4/changes/025", "db_id": "581f18312c8db068f74644c8f9aaad95", "patch_ids": ["23fba0e7fe15bd0c9dfaf2fb77ceeb6d", "5fa0a0aa95b102e7d142e927dcc02915"], "statement_hash": "26e8ded4af49c5db7cd20cecd15c614166922479205a4cc5e3f03775d57e2e4c", "relations": [{"rule": 2, "type": "equivalent", "target": "2cdb0efa2e2249d0e3f9b9dd528ebb36", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26e8ded4af49c5db7cd20cecd15c614166922479205a4cc5e3f03775d57e2e4c"}}, {"rule": 2, "type": "equivalent", "target": "6751805191274189c14b5c574618acf6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26e8ded4af49c5db7cd20cecd15c614166922479205a4cc5e3f03775d57e2e4c"}}, {"rule": 2, "type": "equivalent", "target": "7fa38e8aef93079d71fc8df9e9eaec2b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26e8ded4af49c5db7cd20cecd15c614166922479205a4cc5e3f03775d57e2e4c"}}, {"rule": 2, "type": "equivalent", "target": "bec476c995bf0ae2d6c2bbd39a5ee4a6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26e8ded4af49c5db7cd20cecd15c614166922479205a4cc5e3f03775d57e2e4c"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6751805191274189c14b5c574618acf6", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 INSERT 或 UPDATE 对数组之上域类型的列的多个元素赋值的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26e8ded4af49c5db7cd20cecd15c614166922479205a4cc5e3f03775d57e2e4c"}, "url": "/docs/compare/?release=9.5.8#9.5.8-d20765897a51eeb2", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "2cdb0efa2e2249d0e3f9b9dd528ebb36", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复INSERT或UPDATE对域于数组类型列的多于一个元素赋值的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26e8ded4af49c5db7cd20cecd15c614166922479205a4cc5e3f03775d57e2e4c"}, "url": "/docs/compare/?release=9.4.13#9.4.13-a2678c658d4a7cb7", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "7fa38e8aef93079d71fc8df9e9eaec2b", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复 INSERT 或 UPDATE 对数组之上域类型的列的多个元素赋值的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26e8ded4af49c5db7cd20cecd15c614166922479205a4cc5e3f03775d57e2e4c"}, "url": "/docs/compare/?release=9.3.18#9.3.18-d20765897a51eeb2", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "bec476c995bf0ae2d6c2bbd39a5ee4a6", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 INSERT 或 UPDATE 对数组之上域类型的列的多个元素赋值的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "26e8ded4af49c5db7cd20cecd15c614166922479205a4cc5e3f03775d57e2e4c"}, "url": "/docs/compare/?release=9.2.22#9.2.22-d20765897a51eeb2", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-45882918423781a5", "cves": [], "html": "<p>允许在聚合函数参数内的子 <code>SELECT</code> 中使用窗口函数（Tom Lane）</p>", "text": "允许在聚合函数参数内的子 SELECT 中使用窗口函数（Tom Lane）", "title": "允许在聚合函数参数内的子 SELECT 中使用窗口函数", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "4913cad6ac1b86aa6d433abf113ec81e7c44318955cdfcc1e01f35bcca86265f", "section_path": ["变更"], "commit_groups": [["3a7bd59c4", "66dee28b4", "9a2706572", "9c7dc8928", "dc777f9db"]], "identity_text": "Allow window functions to be used in sub-SELECTs that are within the arguments of an aggregate function (Tom Lane)", "commit_aliases": ["3a7bd59c4", "66dee28b4", "9a2706572", "9c7dc8928", "dc777f9db"], "source_commits": ["3a7bd59c4"], "source_entry_id": "9.6.4/changes/026", "db_id": "2fc123ead4411fe698a8ec30e526d0e9", "patch_ids": ["859aa53537b4edf2483cfbf1a7699948"], "statement_hash": "68fe528e37a30594701a8c54ad832868255b73f68501be033a8c3da603734348", "relations": [{"rule": 2, "type": "equivalent", "target": "4d955c084a20c2af0c43bc971277f818", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68fe528e37a30594701a8c54ad832868255b73f68501be033a8c3da603734348"}}, {"rule": 2, "type": "equivalent", "target": "a3cceca6f8762c038aaacfddecd8a2df", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68fe528e37a30594701a8c54ad832868255b73f68501be033a8c3da603734348"}}, {"rule": 2, "type": "equivalent", "target": "ef9c132dc08d64524af624312932f4aa", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68fe528e37a30594701a8c54ad832868255b73f68501be033a8c3da603734348"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "ef9c132dc08d64524af624312932f4aa", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "允许在聚合函数参数内的子 SELECT 中使用窗口函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68fe528e37a30594701a8c54ad832868255b73f68501be033a8c3da603734348"}, "url": "/docs/compare/?release=9.5.8#9.5.8-45882918423781a5", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "4d955c084a20c2af0c43bc971277f818", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "允许在聚合函数参数内的子SELECT中使用窗口函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68fe528e37a30594701a8c54ad832868255b73f68501be033a8c3da603734348"}, "url": "/docs/compare/?release=9.4.13#9.4.13-e6232e914314daee", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "a3cceca6f8762c038aaacfddecd8a2df", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "允许在聚合函数参数内的子 SELECT 中使用窗口函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "68fe528e37a30594701a8c54ad832868255b73f68501be033a8c3da603734348"}, "url": "/docs/compare/?release=9.3.18#9.3.18-45882918423781a5", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}]}, {"id": "9.6.4-b3c112101bc26034", "cves": [], "html": "<p>确保底层表是外部表时正确执行视图的 <code>CHECK OPTIONS</code> 子句（Etsuro Fujita）</p>\n<p>此前更新可能被完全下推到外部服务器，但这样做的验证视图条件的需要被遗漏了。</p>", "text": "确保底层表是外部表时正确执行视图的 CHECK OPTIONS 子句（Etsuro Fujita） 此前更新可能被完全下推到外部服务器，但这样做的验证视图条件的需要被遗漏了。", "title": "确保底层表是外部表时正确执行视图的 CHECK OPTIONS 子句", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "c8bac5c58daa3741223bd327acc8b0da08274c4e72fc1b481f935241d35b3f03", "section_path": ["变更"], "commit_groups": [["7086be6e3", "971faefc2"]], "identity_text": "Ensure that a view's CHECK OPTIONS clause is enforced properly when the underlying table is a foreign table (Etsuro Fujita) Previously, the update might get pushed entirely to the foreign server, but the need to verify the view conditions was missed if so.", "commit_aliases": ["7086be6e3", "971faefc2"], "source_commits": ["971faefc2"], "source_entry_id": "9.6.4/changes/027", "db_id": "accd01ca0010eb1c7a80eb600f2e260a", "patch_ids": ["1a54e37b75f8465259fcfa79d150801b"], "statement_hash": "7f1780df794f4882b7fbfaf08a58580ab46d61090e90ba8df252e56692638585", "relations": [], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.4-26b8910082bb016e", "cves": [], "html": "<p>在 <code>ALTER ... RENAME</code> 期间把自动生成的数组类型移开（Vik Fearing）</p>\n<p>此前我们在 <code>CREATE</code> 期间会把冲突的自动生成数组类型重命名移开；此修复把该行为扩展到重命名操作。</p>", "text": "在 ALTER ... RENAME 期间把自动生成的数组类型移开（Vik Fearing） 此前我们在 CREATE 期间会把冲突的自动生成数组类型重命名移开；此修复把该行为扩展到重命名操作。", "title": "在 ALTER ... RENAME 期间把自动生成的数组类型移开", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "4b44b67e8821c3dc325e7bb663511cf130172237f8ad084fb7dbd30df9f03bae", "section_path": ["变更"], "commit_groups": [["525780c62", "8f62b388b", "94aced8cd", "9ded51719", "acab87ece", "da9165686"]], "identity_text": "Move autogenerated array types out of the way during ALTER ... RENAME (Vik Fearing) Previously, we would rename a conflicting autogenerated array type out of the way during CREATE; this fix extends that behavior to renaming operations.", "commit_aliases": ["525780c62", "8f62b388b", "94aced8cd", "9ded51719", "acab87ece", "da9165686"], "source_commits": ["acab87ece"], "source_entry_id": "9.6.4/changes/028", "db_id": "35c9a1e915045e14f9285575fbf87fd4", "patch_ids": ["e68ed746d05be0c70fc6ae8544998422"], "statement_hash": "ab43bf4ca4eaf90ab313d6c97c1c22788eecbb002d3a00718cee13d901bdf790", "relations": [{"rule": 2, "type": "equivalent", "target": "01a3f42570323f11d8590ebbab6be905", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab43bf4ca4eaf90ab313d6c97c1c22788eecbb002d3a00718cee13d901bdf790"}}, {"rule": 2, "type": "equivalent", "target": "3542438a9e62964cff164ac34edfb00b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab43bf4ca4eaf90ab313d6c97c1c22788eecbb002d3a00718cee13d901bdf790"}}, {"rule": 2, "type": "equivalent", "target": "bdc3b303804932fa630f8a8d01e0e891", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab43bf4ca4eaf90ab313d6c97c1c22788eecbb002d3a00718cee13d901bdf790"}}, {"rule": 2, "type": "equivalent", "target": "e0b15344dd65537ca60f9d091cab55fb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab43bf4ca4eaf90ab313d6c97c1c22788eecbb002d3a00718cee13d901bdf790"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3542438a9e62964cff164ac34edfb00b", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "在 ALTER ... RENAME 期间把自动生成的数组类型移开", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab43bf4ca4eaf90ab313d6c97c1c22788eecbb002d3a00718cee13d901bdf790"}, "url": "/docs/compare/?release=9.5.8#9.5.8-26b8910082bb016e", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "e0b15344dd65537ca60f9d091cab55fb", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "在 ALTER ... RENAME 期间把自动生成的数组类型移开", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab43bf4ca4eaf90ab313d6c97c1c22788eecbb002d3a00718cee13d901bdf790"}, "url": "/docs/compare/?release=9.4.13#9.4.13-26b8910082bb016e", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "01a3f42570323f11d8590ebbab6be905", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "在 ALTER ... RENAME 期间把自动生成的数组类型移开", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab43bf4ca4eaf90ab313d6c97c1c22788eecbb002d3a00718cee13d901bdf790"}, "url": "/docs/compare/?release=9.3.18#9.3.18-26b8910082bb016e", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "bdc3b303804932fa630f8a8d01e0e891", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "在 ALTER ... RENAME 期间把自动生成的数组类型移开", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ab43bf4ca4eaf90ab313d6c97c1c22788eecbb002d3a00718cee13d901bdf790"}, "url": "/docs/compare/?release=9.2.22#9.2.22-26b8910082bb016e", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-47b65f0a91bb8ed9", "cves": [], "html": "<p>修复表中约束带有注释时 <code>ALTER TABLE</code> 中的悬空指针（David Rowley）</p>\n<p>把注释重新应用于重建后的约束时可能因奇怪的错误消息失败，甚至崩溃。</p>", "text": "修复表中约束带有注释时 ALTER TABLE 中的悬空指针（David Rowley） 把注释重新应用于重建后的约束时可能因奇怪的错误消息失败，甚至崩溃。", "title": "修复表中约束带有注释时 ALTER TABLE 中的悬空指针", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "2e79346a51a6295ffde9824303d22955b09a8b89532a3229e5c6ce1590939cf4", "section_path": ["变更"], "commit_groups": [["12590c5d3", "53a1aa9f9", "b35cce914"]], "identity_text": "Fix dangling pointer in ALTER TABLE when there is a comment on a constraint belonging to the table (David Rowley) Re-applying the comment to the reconstructed constraint could fail with a weird error message, or even crash.", "commit_aliases": ["12590c5d3", "53a1aa9f9", "b35cce914"], "source_commits": ["b35cce914"], "source_entry_id": "9.6.4/changes/029", "db_id": "ba15e5c268a1a357e0d9406a7af562f3", "patch_ids": ["c999c5f280db0d34a7f056a94e07e96a"], "statement_hash": "0f660e6f689cf33ccfac7e4cd3ba137664528add01185cbf4506735c4ef02c30", "relations": [{"rule": 2, "type": "equivalent", "target": "ceabcf8bf0b524d39b3800b2d902e81e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f660e6f689cf33ccfac7e4cd3ba137664528add01185cbf4506735c4ef02c30"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ceabcf8bf0b524d39b3800b2d902e81e", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复表中约束带有注释时 ALTER TABLE 中的悬空指针", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0f660e6f689cf33ccfac7e4cd3ba137664528add01185cbf4506735c4ef02c30"}, "url": "/docs/compare/?release=9.5.8#9.5.8-47b65f0a91bb8ed9", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}]}, {"id": "9.6.4-5d6d8e63b270c702", "cves": [], "html": "<p>确保 <code>ALTER USER ... SET</code> 接受 <code>ALTER ROLE ... SET</code> 接受的所有语法变体（Peter Eisentraut）</p>", "text": "确保 ALTER USER ... SET 接受 ALTER ROLE ... SET 接受的所有语法变体（Peter Eisentraut）", "title": "确保 ALTER USER ... SET 接受 ALTER ROLE ... SET 接受的所有语法变体", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "e3f30d8cc03c40d3bdb405e55d6528d9671ec50eb022fa148605a2796db9310f", "section_path": ["变更"], "commit_groups": [["22eb38caa", "b37448122", "b7d1bc820", "df04db041", "e0446d06e", "f2878a608"]], "identity_text": "Ensure that ALTER USER ... SET accepts all the syntax variants that ALTER ROLE ... SET does (Peter Eisentraut)", "commit_aliases": ["22eb38caa", "b37448122", "b7d1bc820", "df04db041", "e0446d06e", "f2878a608"], "source_commits": ["df04db041"], "source_entry_id": "9.6.4/changes/030", "db_id": "e0dfbecb7a9539c1d00387e2230fd26a", "patch_ids": ["78e2410971251e0e0805aa53dfe3b52d"], "statement_hash": "76e3636bc07ca0ae7a9a7e9caafece2b1209327c81fbb02c916a3a229d9dcb02", "relations": [{"rule": 2, "type": "equivalent", "target": "2e9124e378f62726adf44d3d5bfc1844", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "76e3636bc07ca0ae7a9a7e9caafece2b1209327c81fbb02c916a3a229d9dcb02"}}, {"rule": 2, "type": "equivalent", "target": "64cd1132715305e1328535ca3f78902f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "76e3636bc07ca0ae7a9a7e9caafece2b1209327c81fbb02c916a3a229d9dcb02"}}, {"rule": 2, "type": "equivalent", "target": "78533c68c579d16f73c607cdc14e8a1f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "76e3636bc07ca0ae7a9a7e9caafece2b1209327c81fbb02c916a3a229d9dcb02"}}, {"rule": 2, "type": "equivalent", "target": "d30198df80a7b55813806adb967331f7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "76e3636bc07ca0ae7a9a7e9caafece2b1209327c81fbb02c916a3a229d9dcb02"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d30198df80a7b55813806adb967331f7", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "确保 ALTER USER ... SET 接受 ALTER ROLE ... SET 接受的所有语法变体", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "76e3636bc07ca0ae7a9a7e9caafece2b1209327c81fbb02c916a3a229d9dcb02"}, "url": "/docs/compare/?release=9.5.8#9.5.8-5d6d8e63b270c702", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "78533c68c579d16f73c607cdc14e8a1f", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "确保ALTER USER ... SET接受ALTER ROLE ... SET接受的所有语法变体", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "76e3636bc07ca0ae7a9a7e9caafece2b1209327c81fbb02c916a3a229d9dcb02"}, "url": "/docs/compare/?release=9.4.13#9.4.13-0acb3f4526afe316", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "64cd1132715305e1328535ca3f78902f", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "确保 ALTER USER ... SET 接受 ALTER ROLE ... SET 接受的所有语法变体", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "76e3636bc07ca0ae7a9a7e9caafece2b1209327c81fbb02c916a3a229d9dcb02"}, "url": "/docs/compare/?release=9.3.18#9.3.18-5d6d8e63b270c702", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "2e9124e378f62726adf44d3d5bfc1844", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "确保 ALTER USER ... SET 接受 ALTER ROLE ... SET 接受的所有语法变体", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "76e3636bc07ca0ae7a9a7e9caafece2b1209327c81fbb02c916a3a229d9dcb02"}, "url": "/docs/compare/?release=9.2.22#9.2.22-5d6d8e63b270c702", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-c6f9863507473cda", "cves": [], "html": "<p>允许外部表的 <code>CHECK</code> 约束初始为 <code>NOT VALID</code>（Amit Langote）</p>\n<p><code>CREATE TABLE</code> 静默丢弃 <code>CHECK</code> 约束的 <code>NOT VALID</code> 说明符，理由是表必须是空的，所以约束可以立即验证。但这对于 <code>CREATE FOREIGN TABLE</code> 是错误的，没有理由假定底层表是空的，而且即使是，决定约束今后可以被视为有效也不是我们的事。对外部表跳过这一<span>“<span>优化</span>”</span>。</p>", "text": "允许外部表的 CHECK 约束初始为 NOT VALID（Amit Langote） CREATE TABLE 静默丢弃 CHECK 约束的 NOT VALID 说明符，理由是表必须是空的，所以约束可以立即验证。但这对于 CREATE FOREIGN TABLE 是错误的，没有理由假定底层表是空的，而且即使是，决定约束今后可以被视为有效也不是我们的事。对外部表跳过这一“优化”。", "title": "允许外部表的 CHECK 约束初始为 NOT VALID", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "3388610aeb29080898739ca221c0d07d45340a6385ba88333ab87574f69f6c40", "section_path": ["变更"], "commit_groups": [["1f220c390", "86705aa8c"]], "identity_text": "Allow a foreign table's CHECK constraints to be initially NOT VALID (Amit Langote) CREATE TABLE silently drops NOT VALID specifiers for CHECK constraints, reasoning that the table must be empty so the constraint can be validated immediately. But this is wrong for CREATE FOREIGN TABLE, where there's no reason to suppose that the underlying table is empty, and even if it is it's no business of ours to decide that the constraint can be treated as valid going forward. Skip this optimization for foreign tables.", "commit_aliases": ["1f220c390", "86705aa8c"], "source_commits": ["1f220c390"], "source_entry_id": "9.6.4/changes/031", "db_id": "76ddd4cbca270506e56630a5fecfbc20", "patch_ids": ["27e9487ff05f55de1d97fdc5a7321fc4"], "statement_hash": "18103f730c567df1685fe648e0f3432a580366ff51f3afb4efefb82dfa7acc33", "relations": [], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.4-7e64d6a8ac02ee1d", "cves": [], "html": "<p>把数据类型 I/O 函数的参数或返回类型从 <code>opaque</code> 更改为正确类型时正确更新依赖信息（Heikki Linnakangas）</p>\n<p><code>CREATE TYPE</code> 会更新以这种早已过时风格声明的 I/O 函数，但忘记记录对类型的依赖，允许随后的 <code>DROP TYPE</code> 留下损坏的函数定义。</p>", "text": "把数据类型 I/O 函数的参数或返回类型从 opaque 更改为正确类型时正确更新依赖信息（Heikki Linnakangas） CREATE TYPE 会更新以这种早已过时风格声明的 I/O 函数，但忘记记录对类型的依赖，允许随后的 DROP TYPE 留下损坏的函数定义。", "title": "把数据类型 I/O 函数的参数或返回类型从 opaque 更改为正确类型时正确更新依赖信息", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "1b171210b0ce5ad5827a5e2d7251fc9e27c918f65aa1b623d3e5a8a62627a3b7", "section_path": ["变更"], "commit_groups": [["30681c830", "501e6f8b7", "6338b50b9", "a9a5eb32b", "ac93a78b0", "b47e2f7a9"]], "identity_text": "Properly update dependency info when changing a datatype I/O function's argument or return type from opaque to the correct type (Heikki Linnakangas) CREATE TYPE updates I/O functions declared in this long-obsolete style, but it forgot to record a dependency on the type, allowing a subsequent DROP TYPE to leave broken function definitions behind.", "commit_aliases": ["30681c830", "501e6f8b7", "6338b50b9", "a9a5eb32b", "ac93a78b0", "b47e2f7a9"], "source_commits": ["a9a5eb32b"], "source_entry_id": "9.6.4/changes/032", "db_id": "1c71739ec0bc22b2086096c2e708bf8d", "patch_ids": ["6c901075f7e1f0c139a839b714ad1d22"], "statement_hash": "e3fdc8ebbdbf730a329bf0a859fb389fd46d076d6cc0d55d600ecc892a552e95", "relations": [{"rule": 2, "type": "equivalent", "target": "4ea6d45d75e4f4cbecc3f43197c0e279", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3fdc8ebbdbf730a329bf0a859fb389fd46d076d6cc0d55d600ecc892a552e95"}}, {"rule": 2, "type": "equivalent", "target": "ca6de75b0e0794384b1bddc37b7725d6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3fdc8ebbdbf730a329bf0a859fb389fd46d076d6cc0d55d600ecc892a552e95"}}, {"rule": 2, "type": "equivalent", "target": "e2f1d6fdaec7559842c2385b6c1b3960", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3fdc8ebbdbf730a329bf0a859fb389fd46d076d6cc0d55d600ecc892a552e95"}}, {"rule": 2, "type": "equivalent", "target": "fc3e91d166da9eace934c7ce332d1d1a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3fdc8ebbdbf730a329bf0a859fb389fd46d076d6cc0d55d600ecc892a552e95"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4ea6d45d75e4f4cbecc3f43197c0e279", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "把数据类型 I/O 函数的参数或返回类型从 opaque 更改为正确类型时正确更新依赖信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3fdc8ebbdbf730a329bf0a859fb389fd46d076d6cc0d55d600ecc892a552e95"}, "url": "/docs/compare/?release=9.5.8#9.5.8-7e64d6a8ac02ee1d", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "fc3e91d166da9eace934c7ce332d1d1a", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "把数据类型 I/O 函数的参数或返回类型从 opaque 更改为正确类型时正确更新依赖信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3fdc8ebbdbf730a329bf0a859fb389fd46d076d6cc0d55d600ecc892a552e95"}, "url": "/docs/compare/?release=9.4.13#9.4.13-7e64d6a8ac02ee1d", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "ca6de75b0e0794384b1bddc37b7725d6", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "把数据类型 I/O 函数的参数或返回类型从 opaque 更改为正确类型时正确更新依赖信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3fdc8ebbdbf730a329bf0a859fb389fd46d076d6cc0d55d600ecc892a552e95"}, "url": "/docs/compare/?release=9.3.18#9.3.18-7e64d6a8ac02ee1d", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "e2f1d6fdaec7559842c2385b6c1b3960", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "把数据类型 I/O 函数的参数或返回类型从 opaque 更改为正确类型时正确更新依赖信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e3fdc8ebbdbf730a329bf0a859fb389fd46d076d6cc0d55d600ecc892a552e95"}, "url": "/docs/compare/?release=9.2.22#9.2.22-7e64d6a8ac02ee1d", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-5d3e2d74baa815d4", "cves": [], "html": "<p>允许 <code>COPY</code> 从查询结果复制时在查询计划中使用并行（Andres Freund）</p>", "text": "允许 COPY 从查询结果复制时在查询计划中使用并行（Andres Freund）", "title": "允许 COPY 从查询结果复制时在查询计划中使用并行", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "e3254b711ee4bd13646f5eece51872e4ce04db8ada212d0868827184a8bab70a", "section_path": ["变更"], "commit_groups": [["34aebcf42", "8a7cd781e"]], "identity_text": "Allow parallelism in the query plan when COPY copies from a query's result (Andres Freund)", "commit_aliases": ["34aebcf42", "8a7cd781e"], "source_commits": ["8a7cd781e"], "source_entry_id": "9.6.4/changes/033", "db_id": "9f7626cfb981bc8f9f5874026365f017", "patch_ids": ["0b33c9b1d6516637c2f1283cedfeb569"], "statement_hash": "47bd6a27c4c3119124c9a66ebbdceedfbb48e59b876abeedf6d9b3d966403971", "relations": [], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.4-53ec6cb2f2c17b5e", "cves": [], "html": "<p>减少 <code>ANALYZE</code> 处理 <code>tsvector</code> 列时的内存使用（Heikki Linnakangas）</p>", "text": "减少 ANALYZE 处理 tsvector 列时的内存使用（Heikki Linnakangas）", "title": "减少 ANALYZE 处理 tsvector 列时的内存使用", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "c5fc3d30d111b31cb4ed00f68f67f0e663b5e1d4f38460e53e23ad1189e8fade", "section_path": ["变更"], "commit_groups": [["11854dee0", "209970ded", "40ba61b44", "852902822", "bbeec3c74", "da11977de"]], "identity_text": "Reduce memory usage when ANALYZE processes a tsvector column (Heikki Linnakangas)", "commit_aliases": ["11854dee0", "209970ded", "40ba61b44", "852902822", "bbeec3c74", "da11977de"], "source_commits": ["bbeec3c74"], "source_entry_id": "9.6.4/changes/034", "db_id": "186cde4e1db0f0be25d5d5bf57d359a3", "patch_ids": ["36b05fa4a27b3a3c009f2918c70b311e"], "statement_hash": "365b3b807b5473e4ab75e1425dcf3b1ac225ca482d4cf17dcea8abb928e59285", "relations": [{"rule": 2, "type": "equivalent", "target": "311b3cc3e4fa5b500aa9deca70df0ad1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "365b3b807b5473e4ab75e1425dcf3b1ac225ca482d4cf17dcea8abb928e59285"}}, {"rule": 2, "type": "equivalent", "target": "56a90a69a533a8f1b101b1a4530193a8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "365b3b807b5473e4ab75e1425dcf3b1ac225ca482d4cf17dcea8abb928e59285"}}, {"rule": 2, "type": "equivalent", "target": "9286e2faff7d6b1fff883e2bd2b97a77", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "365b3b807b5473e4ab75e1425dcf3b1ac225ca482d4cf17dcea8abb928e59285"}}, {"rule": 2, "type": "equivalent", "target": "b5fdaa42caf9e6d138b07b5dc501401e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "365b3b807b5473e4ab75e1425dcf3b1ac225ca482d4cf17dcea8abb928e59285"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b5fdaa42caf9e6d138b07b5dc501401e", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "减少 ANALYZE 处理 tsvector 列时的内存使用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "365b3b807b5473e4ab75e1425dcf3b1ac225ca482d4cf17dcea8abb928e59285"}, "url": "/docs/compare/?release=9.5.8#9.5.8-53ec6cb2f2c17b5e", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "311b3cc3e4fa5b500aa9deca70df0ad1", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "减少ANALYZE处理tsvector列时的内存占用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "365b3b807b5473e4ab75e1425dcf3b1ac225ca482d4cf17dcea8abb928e59285"}, "url": "/docs/compare/?release=9.4.13#9.4.13-5cc7b36574f17ab3", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "9286e2faff7d6b1fff883e2bd2b97a77", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "减少 ANALYZE 处理 tsvector 列时的内存使用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "365b3b807b5473e4ab75e1425dcf3b1ac225ca482d4cf17dcea8abb928e59285"}, "url": "/docs/compare/?release=9.3.18#9.3.18-53ec6cb2f2c17b5e", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "56a90a69a533a8f1b101b1a4530193a8", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "减少 ANALYZE 处理 tsvector 列时的内存使用", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "365b3b807b5473e4ab75e1425dcf3b1ac225ca482d4cf17dcea8abb928e59285"}, "url": "/docs/compare/?release=9.2.22#9.2.22-53ec6cb2f2c17b5e", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-7274a73af024ab1f", "cves": [], "html": "<p>修复 <code>money</code> 值乘以或除以整数或浮点数时不必要的精度丢失和草率舍入（Tom Lane）</p>", "text": "修复 money 值乘以或除以整数或浮点数时不必要的精度丢失和草率舍入（Tom Lane）", "title": "修复 money 值乘以或除以整数或浮点数时不必要的精度丢失和草率舍入", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "9ea3fb8cd3a93e33ffed92cba87e6420b777163d1765dac5810042a1810c8c87", "section_path": ["变更"], "commit_groups": [["5032f704e", "798d2321e", "83f4e8f71", "b3c536bce", "c101d83a3", "d761fe218"]], "identity_text": "Fix unnecessary precision loss and sloppy rounding when multiplying or dividing money values by integers or floats (Tom Lane)", "commit_aliases": ["5032f704e", "798d2321e", "83f4e8f71", "b3c536bce", "c101d83a3", "d761fe218"], "source_commits": ["c101d83a3"], "source_entry_id": "9.6.4/changes/035", "db_id": "e18ad23e444eafe61e775b732271dcc6", "patch_ids": ["2d8a217a466d8d91cecdbf60b5fd9b43"], "statement_hash": "8366e04a8cbfa6fcab7fa6659f1c4a822f67b3552f11a185ff2bcc49708c0bc5", "relations": [{"rule": 2, "type": "equivalent", "target": "200144e3d3d62f9ce4f389e55d3f4745", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8366e04a8cbfa6fcab7fa6659f1c4a822f67b3552f11a185ff2bcc49708c0bc5"}}, {"rule": 2, "type": "equivalent", "target": "4b94c1478911b41eaef82286d2b45208", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8366e04a8cbfa6fcab7fa6659f1c4a822f67b3552f11a185ff2bcc49708c0bc5"}}, {"rule": 2, "type": "equivalent", "target": "c7eb7fb2b29170b05a637ca27c2a7539", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8366e04a8cbfa6fcab7fa6659f1c4a822f67b3552f11a185ff2bcc49708c0bc5"}}, {"rule": 2, "type": "equivalent", "target": "e7af3496a98b2881c3be33678b312c32", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8366e04a8cbfa6fcab7fa6659f1c4a822f67b3552f11a185ff2bcc49708c0bc5"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "4b94c1478911b41eaef82286d2b45208", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 money 值乘以或除以整数或浮点数时不必要的精度丢失和草率舍入", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8366e04a8cbfa6fcab7fa6659f1c4a822f67b3552f11a185ff2bcc49708c0bc5"}, "url": "/docs/compare/?release=9.5.8#9.5.8-7274a73af024ab1f", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "200144e3d3d62f9ce4f389e55d3f4745", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复money值与整数或浮点数相乘/相除时不必要的精度损失和草率舍入", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8366e04a8cbfa6fcab7fa6659f1c4a822f67b3552f11a185ff2bcc49708c0bc5"}, "url": "/docs/compare/?release=9.4.13#9.4.13-40f89286d4f1ec29", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "c7eb7fb2b29170b05a637ca27c2a7539", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复 money 值乘以或除以整数或浮点数时不必要的精度丢失和草率舍入", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8366e04a8cbfa6fcab7fa6659f1c4a822f67b3552f11a185ff2bcc49708c0bc5"}, "url": "/docs/compare/?release=9.3.18#9.3.18-7274a73af024ab1f", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "e7af3496a98b2881c3be33678b312c32", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 money 值乘以或除以整数或浮点数时不必要的精度丢失和草率舍入", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8366e04a8cbfa6fcab7fa6659f1c4a822f67b3552f11a185ff2bcc49708c0bc5"}, "url": "/docs/compare/?release=9.2.22#9.2.22-7274a73af024ab1f", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-5118ee67f07e4d53", "cves": [], "html": "<p>收紧对解析标识符的函数（如 <code>regprocedurein()</code>）中空白的检查（Tom Lane）</p>\n<p>根据当前区域，这些函数可能把多字节字符的片段误解释为空白。</p>", "text": "收紧对解析标识符的函数（如 regprocedurein()）中空白的检查（Tom Lane） 根据当前区域，这些函数可能把多字节字符的片段误解释为空白。", "title": "收紧对解析标识符的函数（如 regprocedurein()）中空白的检查", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "01880c548587e8427b61b42f1bd2e644d1040e3eceb0f89a0c6c57c3368195c1", "section_path": ["变更"], "commit_groups": [["2c5e3fab3", "8527132e5", "971a158e6", "9ae2661fe", "a047270d5", "a3043d363"]], "identity_text": "Tighten checks for whitespace in functions that parse identifiers, such as regprocedurein() (Tom Lane) Depending on the prevailing locale, these functions could misinterpret fragments of multibyte characters as whitespace.", "commit_aliases": ["2c5e3fab3", "8527132e5", "971a158e6", "9ae2661fe", "a047270d5", "a3043d363"], "source_commits": ["8527132e5"], "source_entry_id": "9.6.4/changes/036", "db_id": "51131f8d3f132e0ebe995be51a7e214b", "patch_ids": ["0044fa0cd3186f3d87434a8f20a07663"], "statement_hash": "33a525d2ff427c75198e734de5916d99da60fdf6f04405fd1a0236afacf40807", "relations": [{"rule": 2, "type": "equivalent", "target": "3c0a5921b737f2e58d32771afebaa81e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33a525d2ff427c75198e734de5916d99da60fdf6f04405fd1a0236afacf40807"}}, {"rule": 2, "type": "equivalent", "target": "7dc7725bf5e33baf9a4661587b0e8778", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33a525d2ff427c75198e734de5916d99da60fdf6f04405fd1a0236afacf40807"}}, {"rule": 2, "type": "equivalent", "target": "835321b9bb87e7c0b5749d5c3a0a71eb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33a525d2ff427c75198e734de5916d99da60fdf6f04405fd1a0236afacf40807"}}, {"rule": 2, "type": "equivalent", "target": "9efb4404669223331c80f16eb8181e0e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33a525d2ff427c75198e734de5916d99da60fdf6f04405fd1a0236afacf40807"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7dc7725bf5e33baf9a4661587b0e8778", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "收紧对解析标识符的函数（如 regprocedurein()）中空白的检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33a525d2ff427c75198e734de5916d99da60fdf6f04405fd1a0236afacf40807"}, "url": "/docs/compare/?release=9.5.8#9.5.8-5118ee67f07e4d53", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "9efb4404669223331c80f16eb8181e0e", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "收紧对解析标识符的函数（如 regprocedurein()）中空白的检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33a525d2ff427c75198e734de5916d99da60fdf6f04405fd1a0236afacf40807"}, "url": "/docs/compare/?release=9.4.13#9.4.13-5118ee67f07e4d53", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "3c0a5921b737f2e58d32771afebaa81e", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "收紧对解析标识符的函数（如 regprocedurein()）中空白的检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33a525d2ff427c75198e734de5916d99da60fdf6f04405fd1a0236afacf40807"}, "url": "/docs/compare/?release=9.3.18#9.3.18-5118ee67f07e4d53", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "835321b9bb87e7c0b5749d5c3a0a71eb", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "收紧对解析标识符的函数（如 regprocedurein()）中空白的检查", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "33a525d2ff427c75198e734de5916d99da60fdf6f04405fd1a0236afacf40807"}, "url": "/docs/compare/?release=9.2.22#9.2.22-5118ee67f07e4d53", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-474980cb5fb146b9", "cves": [], "html": "<p>编译 <span>PL/Perl</span> 时使用来自 Perl 的相关 <code>#define</code> 符号（Ashutosh Sharma、Tom Lane）</p>\n<p>这避免了可移植性问题（通常表现为库加载期间的<span>“<span>握手</span>”</span>不匹配），在使用最近 Perl 版本时。</p>", "text": "编译 PL/Perl 时使用来自 Perl 的相关 #define 符号（Ashutosh Sharma、Tom Lane） 这避免了可移植性问题（通常表现为库加载期间的“握手”不匹配），在使用最近 Perl 版本时。", "title": "编译 PL/Perl 时使用来自 Perl 的相关 #define 符号", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "14ae36077d20560b377d74c2cf9bf07abf20b52f78678ed3ca71c816a3b06132", "section_path": ["变更"], "commit_groups": [["0d8f015e7", "1e58c503e", "3c163a7fc", "456c7dff2", "9cbdc6894", "df52739ce"], ["30a5c8bfb", "99eea89db", "b4b958251", "b92f17277", "bebe174bb", "d48180ec8"]], "identity_text": "Use relevant #define symbols from Perl while compiling PL/Perl (Ashutosh Sharma, Tom Lane) This avoids portability problems, typically manifesting as a handshake mismatch during library load, when working with recent Perl versions.", "commit_aliases": ["0d8f015e7", "1e58c503e", "30a5c8bfb", "3c163a7fc", "456c7dff2", "99eea89db", "9cbdc6894", "b4b958251", "b92f17277", "bebe174bb", "d48180ec8", "df52739ce"], "source_commits": ["1e58c503e", "30a5c8bfb"], "source_entry_id": "9.6.4/changes/037", "db_id": "305da47f50ed8f0ce3a821641c6f95b6", "patch_ids": ["3a3b2b637fc116d54e43267cbff8831e", "642fd6fb30e0bf40b080005c01dbcbcb"], "statement_hash": "8ffb54d766224c3c9334c048e9778b417e5a58e08157d45b8ccb288415adb02e", "relations": [{"rule": 2, "type": "equivalent", "target": "9d939394d3ef977b355d5067c31096da", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8ffb54d766224c3c9334c048e9778b417e5a58e08157d45b8ccb288415adb02e"}}, {"rule": 2, "type": "equivalent", "target": "c22a12a11473dfddf3f84f1ae9150cfb", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8ffb54d766224c3c9334c048e9778b417e5a58e08157d45b8ccb288415adb02e"}}, {"rule": 2, "type": "equivalent", "target": "c77f2092d00b5020f4fa8133a9904bef", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8ffb54d766224c3c9334c048e9778b417e5a58e08157d45b8ccb288415adb02e"}}, {"rule": 2, "type": "equivalent", "target": "e1497c1373601f3a52ad6e5179cebd31", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8ffb54d766224c3c9334c048e9778b417e5a58e08157d45b8ccb288415adb02e"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c77f2092d00b5020f4fa8133a9904bef", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "编译 PL/Perl 时使用来自 Perl 的相关 #define 符号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8ffb54d766224c3c9334c048e9778b417e5a58e08157d45b8ccb288415adb02e"}, "url": "/docs/compare/?release=9.5.8#9.5.8-474980cb5fb146b9", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "c22a12a11473dfddf3f84f1ae9150cfb", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "编译 PL/Perl 时使用来自 Perl 的相关 #define 符号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8ffb54d766224c3c9334c048e9778b417e5a58e08157d45b8ccb288415adb02e"}, "url": "/docs/compare/?release=9.4.13#9.4.13-474980cb5fb146b9", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "e1497c1373601f3a52ad6e5179cebd31", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "编译 PL/Perl 时使用来自 Perl 的相关 #define 符号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8ffb54d766224c3c9334c048e9778b417e5a58e08157d45b8ccb288415adb02e"}, "url": "/docs/compare/?release=9.3.18#9.3.18-474980cb5fb146b9", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "9d939394d3ef977b355d5067c31096da", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "编译 PL/Perl 时使用来自 Perl 的相关 #define 符号", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8ffb54d766224c3c9334c048e9778b417e5a58e08157d45b8ccb288415adb02e"}, "url": "/docs/compare/?release=9.2.22#9.2.22-474980cb5fb146b9", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-056fd7f08bcf3bf3", "cves": [], "html": "<p>在 <span>libpq</span> 中，连接尝试失败后正确重置 GSS/SASL 和 SSPI 认证状态（Michael Paquier）</p>\n<p>不这样做意味着当从 SSL 回退到非 SSL 连接时，SSL 尝试中的 GSS/SASL 失败总是导致非 SSL 尝试失败。SSPI 不会失败，但泄漏内存。</p>", "text": "在 libpq 中，连接尝试失败后正确重置 GSS/SASL 和 SSPI 认证状态（Michael Paquier） 不这样做意味着当从 SSL 回退到非 SSL 连接时，SSL 尝试中的 GSS/SASL 失败总是导致非 SSL 尝试失败。SSPI 不会失败，但泄漏内存。", "title": "在 libpq 中，连接尝试失败后正确重置 GSS/SASL 和 SSPI 认证状态", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "a084e315f474cab212649dbd1d301034e8accf543ee0efcd2feb9ea2691a255e", "section_path": ["变更"], "commit_groups": [["1fe1fc449", "739cb7f8b", "e6c33d594", "f2fa0c651", "f44c609ea"]], "identity_text": "In libpq, reset GSS/SASL and SSPI authentication state properly after a failed connection attempt (Michael Paquier) Failure to do this meant that when falling back from SSL to non-SSL connections, a GSS/SASL failure in the SSL attempt would always cause the non-SSL attempt to fail. SSPI did not fail, but it leaked memory.", "commit_aliases": ["1fe1fc449", "739cb7f8b", "e6c33d594", "f2fa0c651", "f44c609ea"], "source_commits": ["f44c609ea"], "source_entry_id": "9.6.4/changes/038", "db_id": "0456888e68ba9735aed31467beaa1606", "patch_ids": ["5b0a662cf429607716c22756bf78fd17"], "statement_hash": "ca8fd63d5e0f44a3bf05c82f0ef526c0be1eb2497b6175a6cfed79a615aad31d", "relations": [{"rule": 2, "type": "equivalent", "target": "0e0c8800fb2de2726071d288ab427a2a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca8fd63d5e0f44a3bf05c82f0ef526c0be1eb2497b6175a6cfed79a615aad31d"}}, {"rule": 2, "type": "equivalent", "target": "4236ed294a48db58aaecec60f5bd28d3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca8fd63d5e0f44a3bf05c82f0ef526c0be1eb2497b6175a6cfed79a615aad31d"}}, {"rule": 2, "type": "equivalent", "target": "bce8f77346d60ccbd6093c02df55203d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca8fd63d5e0f44a3bf05c82f0ef526c0be1eb2497b6175a6cfed79a615aad31d"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0e0c8800fb2de2726071d288ab427a2a", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "在 libpq 中，连接尝试失败后正确重置 GSS/SASL 和 SSPI 认证状态", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca8fd63d5e0f44a3bf05c82f0ef526c0be1eb2497b6175a6cfed79a615aad31d"}, "url": "/docs/compare/?release=9.5.8#9.5.8-056fd7f08bcf3bf3", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "bce8f77346d60ccbd6093c02df55203d", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "在 libpq 中，连接尝试失败后正确重置 GSS/SASL 和 SSPI 认证状态", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca8fd63d5e0f44a3bf05c82f0ef526c0be1eb2497b6175a6cfed79a615aad31d"}, "url": "/docs/compare/?release=9.4.13#9.4.13-056fd7f08bcf3bf3", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "4236ed294a48db58aaecec60f5bd28d3", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "在 libpq 中，连接尝试失败后正确重置 GSS/SASL 和 SSPI 认证状态", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ca8fd63d5e0f44a3bf05c82f0ef526c0be1eb2497b6175a6cfed79a615aad31d"}, "url": "/docs/compare/?release=9.3.18#9.3.18-056fd7f08bcf3bf3", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}]}, {"id": "9.6.4-f6dd38d2b91f2552", "cves": [], "html": "<p>在 <span>psql</span> 中，修复 <code>COPY FROM STDIN</code> 以键盘 EOF 信号结束后再尝试另一个 <code>COPY FROM STDIN</code> 时失败的问题（Thomas Munro）</p>\n<p>这种错误行为在 BSD 衍生平台（包括 macOS）上观察到，但在大多数其他平台上没有。</p>", "text": "在 psql 中，修复 COPY FROM STDIN 以键盘 EOF 信号结束后再尝试另一个 COPY FROM STDIN 时失败的问题（Thomas Munro） 这种错误行为在 BSD 衍生平台（包括 macOS）上观察到，但在大多数其他平台上没有。", "title": "在 psql 中，修复 COPY FROM STDIN 以键盘 EOF 信号结束后再尝试另一个 COPY FROM STDIN 时失败的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "1b9eeab800e9aa4c751893f45cadc1cec0008b9663d4b42270ffbf16924bcbb2", "section_path": ["变更"], "commit_groups": [["07477130e", "49dfbb53c", "6bc710f6d", "9485516ea", "bee9e8698", "ff0e30512"]], "identity_text": "In psql, fix failure when COPY FROM STDIN is ended with a keyboard EOF signal and then another COPY FROM STDIN is attempted (Thomas Munro) This misbehavior was observed on BSD-derived platforms (including macOS), but not on most others.", "commit_aliases": ["07477130e", "49dfbb53c", "6bc710f6d", "9485516ea", "bee9e8698", "ff0e30512"], "source_commits": ["bee9e8698"], "source_entry_id": "9.6.4/changes/039", "db_id": "97b6de864a42aee7da373e5fe0c118fd", "patch_ids": ["3b19455ea29ab8719801cfbd99969752"], "statement_hash": "e63d43415c19dc213f64879bb7ecdaf630d9c466c9416e88c9b29aa4d2645bdb", "relations": [{"rule": 2, "type": "equivalent", "target": "6004f396e99c733a1e660e68647024bc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e63d43415c19dc213f64879bb7ecdaf630d9c466c9416e88c9b29aa4d2645bdb"}}, {"rule": 2, "type": "equivalent", "target": "848a728f38402af058ade6e9b1bebe80", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e63d43415c19dc213f64879bb7ecdaf630d9c466c9416e88c9b29aa4d2645bdb"}}, {"rule": 2, "type": "equivalent", "target": "b68ddd9f7cc23e1e7f98a7342cfb1006", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e63d43415c19dc213f64879bb7ecdaf630d9c466c9416e88c9b29aa4d2645bdb"}}, {"rule": 2, "type": "equivalent", "target": "ef425a41068590fd5bab895976085ff8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e63d43415c19dc213f64879bb7ecdaf630d9c466c9416e88c9b29aa4d2645bdb"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "6004f396e99c733a1e660e68647024bc", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "在 psql 中，修复 COPY FROM STDIN 以键盘 EOF 信号结束后再尝试另一个 COPY FROM STDIN 时失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e63d43415c19dc213f64879bb7ecdaf630d9c466c9416e88c9b29aa4d2645bdb"}, "url": "/docs/compare/?release=9.5.8#9.5.8-f6dd38d2b91f2552", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "ef425a41068590fd5bab895976085ff8", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "在 psql 中，修复 COPY FROM STDIN 以键盘 EOF 信号结束后再尝试另一个 COPY FROM STDIN 时失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e63d43415c19dc213f64879bb7ecdaf630d9c466c9416e88c9b29aa4d2645bdb"}, "url": "/docs/compare/?release=9.4.13#9.4.13-f6dd38d2b91f2552", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "b68ddd9f7cc23e1e7f98a7342cfb1006", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "在 psql 中，修复 COPY FROM STDIN 以键盘 EOF 信号结束后再尝试另一个 COPY FROM STDIN 时失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e63d43415c19dc213f64879bb7ecdaf630d9c466c9416e88c9b29aa4d2645bdb"}, "url": "/docs/compare/?release=9.3.18#9.3.18-f6dd38d2b91f2552", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "848a728f38402af058ade6e9b1bebe80", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "在 psql 中，修复 COPY FROM STDIN 以键盘 EOF 信号结束后再尝试另一个 COPY FROM STDIN 时失败的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e63d43415c19dc213f64879bb7ecdaf630d9c466c9416e88c9b29aa4d2645bdb"}, "url": "/docs/compare/?release=9.2.22#9.2.22-f6dd38d2b91f2552", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-0b8887b8749b708f", "cves": [], "html": "<p>修复 <span>pg_dump</span> 和 <span>pg_restore</span> 把 <code>REFRESH MATERIALIZED VIEW</code> 命令放在最后发出（Tom Lane）</p>\n<p>这防止了物化视图引用其他用户拥有的表时转储/恢复期间的错误。</p>", "text": "修复 pg_dump 和 pg_restore 把 REFRESH MATERIALIZED VIEW 命令放在最后发出（Tom Lane） 这防止了物化视图引用其他用户拥有的表时转储/恢复期间的错误。", "title": "修复 pg_dump 和 pg_restore 把 REFRESH MATERIALIZED VIEW 命令放在最后发出", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "875bb64b69e27d4769627cd6d824cc0ea22d22bd6cbf301ca94dc6a9360cb543", "section_path": ["变更"], "commit_groups": [["035bb8222", "3d7632829", "3eb9a5e7c", "65048cf23", "b93217653"]], "identity_text": "Fix pg_dump and pg_restore to emit REFRESH MATERIALIZED VIEW commands last (Tom Lane) This prevents errors during dump/restore when a materialized view refers to tables owned by a different user.", "commit_aliases": ["035bb8222", "3d7632829", "3eb9a5e7c", "65048cf23", "b93217653"], "source_commits": ["3d7632829"], "source_entry_id": "9.6.4/changes/040", "db_id": "1099adc868f2fd81340f5ad0ff580c3e", "patch_ids": ["30fe8dfd5a078c773fb74f6e185f72af"], "statement_hash": "e445fe3229a0ba18c760210f9dc63a30424288f15b99e20efd6b0171ffd1d02a", "relations": [{"rule": 2, "type": "equivalent", "target": "0f3addd499cf349a5d6de089b899807d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e445fe3229a0ba18c760210f9dc63a30424288f15b99e20efd6b0171ffd1d02a"}}, {"rule": 2, "type": "equivalent", "target": "a5195efadb3588413ab4580829892e47", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e445fe3229a0ba18c760210f9dc63a30424288f15b99e20efd6b0171ffd1d02a"}}, {"rule": 2, "type": "equivalent", "target": "f3362d3ac0ab12a7af758d2723b8575f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e445fe3229a0ba18c760210f9dc63a30424288f15b99e20efd6b0171ffd1d02a"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a5195efadb3588413ab4580829892e47", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 pg_dump 和 pg_restore 把 REFRESH MATERIALIZED VIEW 命令放在最后发出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e445fe3229a0ba18c760210f9dc63a30424288f15b99e20efd6b0171ffd1d02a"}, "url": "/docs/compare/?release=9.5.8#9.5.8-0b8887b8749b708f", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "0f3addd499cf349a5d6de089b899807d", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复 pg_dump 和 pg_restore 把 REFRESH MATERIALIZED VIEW 命令放在最后发出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e445fe3229a0ba18c760210f9dc63a30424288f15b99e20efd6b0171ffd1d02a"}, "url": "/docs/compare/?release=9.4.13#9.4.13-0b8887b8749b708f", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "f3362d3ac0ab12a7af758d2723b8575f", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复 pg_dump 和 pg_restore 把 REFRESH MATERIALIZED VIEW 命令放在最后发出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e445fe3229a0ba18c760210f9dc63a30424288f15b99e20efd6b0171ffd1d02a"}, "url": "/docs/compare/?release=9.3.18#9.3.18-0b8887b8749b708f", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}]}, {"id": "9.6.4-6a664b5b42f52a34", "cves": [], "html": "<p>改进 <span>pg_dump</span>/<span>pg_restore</span> 对源自 <span>zlib</span> 的错误情况的报告（Vladimir Kunschikov、Álvaro Herrera）</p>", "text": "改进 pg_dump/pg_restore 对源自 zlib 的错误情况的报告（Vladimir Kunschikov、Álvaro Herrera）", "title": "改进 pg_dump/pg_restore 对源自 zlib 的错误情况的报告", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "463c407f79bc6f694f824da7a9cbf5f17473bf9d4d1272eae0a6281303e0f651", "section_path": ["变更"], "commit_groups": [["060393f2a", "330e68734", "4d57e8381", "f3142c027"], ["12f1e523a", "611840074", "69ad12b58", "9a3b5d3ad"]], "identity_text": "Improve pg_dump/pg_restore's reporting of error conditions originating in zlib (Vladimir Kunschikov, Álvaro Herrera)", "commit_aliases": ["060393f2a", "12f1e523a", "330e68734", "4d57e8381", "611840074", "69ad12b58", "9a3b5d3ad", "f3142c027"], "source_commits": ["060393f2a", "611840074"], "source_entry_id": "9.6.4/changes/041", "db_id": "86d8c7635ffee30605202b723c89cbf9", "patch_ids": ["5dad7b4e07858301d2eeb0cb7653fe17", "c9cc37dfa7dedd5cf1f9f033d6092222"], "statement_hash": "b2b7b4673385eaac5f73aa1e875e0dcd791b591111c7ba536075e6a40e708857", "relations": [{"rule": 2, "type": "equivalent", "target": "9d40dcf849197f9c4c220d20840f6fad", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2b7b4673385eaac5f73aa1e875e0dcd791b591111c7ba536075e6a40e708857"}}, {"rule": 2, "type": "equivalent", "target": "c0c492a913bfa6f850b9e8aa69ad6891", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2b7b4673385eaac5f73aa1e875e0dcd791b591111c7ba536075e6a40e708857"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c0c492a913bfa6f850b9e8aa69ad6891", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "改进 pg_dump/pg_restore 对源自 zlib 的错误情况的报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2b7b4673385eaac5f73aa1e875e0dcd791b591111c7ba536075e6a40e708857"}, "url": "/docs/compare/?release=9.5.8#9.5.8-6a664b5b42f52a34", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "9d40dcf849197f9c4c220d20840f6fad", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "改进pg_dump/pg_restore对源自zlib的错误情况的报告", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b2b7b4673385eaac5f73aa1e875e0dcd791b591111c7ba536075e6a40e708857"}, "url": "/docs/compare/?release=9.4.13#9.4.13-40a437b0feca7696", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}]}, {"id": "9.6.4-887efc91c3b9f809", "cves": [], "html": "<p>修复 <span>pg_dump</span> 使用 <code>--clean</code> 选项按预期删除事件触发器（Tom Lane）</p>\n<p>它现在还正确分配事件触发器的所有权；此前它们被恢复为归运行恢复脚本的超级用户所有。</p>", "text": "修复 pg_dump 使用 --clean 选项按预期删除事件触发器（Tom Lane） 它现在还正确分配事件触发器的所有权；此前它们被恢复为归运行恢复脚本的超级用户所有。", "title": "修复 pg_dump 使用 --clean 选项按预期删除事件触发器", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "f0e8e980ea8146f12c218b92fb33435bc19fd73d85da9afda938bfc187c29dbe", "section_path": ["变更"], "commit_groups": [["502ead3d6", "68a22bc69", "7debd9f79", "82ebda7ff", "93f039b49"]], "identity_text": "Fix pg_dump with the --clean option to drop event triggers as expected (Tom Lane) It also now correctly assigns ownership of event triggers; before, they were restored as being owned by the superuser running the restore script.", "commit_aliases": ["502ead3d6", "68a22bc69", "7debd9f79", "82ebda7ff", "93f039b49"], "source_commits": ["82ebda7ff"], "source_entry_id": "9.6.4/changes/042", "db_id": "97c42efa76ac8fe42886299078852fce", "patch_ids": ["6c8eb99ab0fce70118eb73ac50090091"], "statement_hash": "a61ddcf60161a2d001ef8322d164a9ce79247dd970745dc7dc6e1bb4e810f2ff", "relations": [{"rule": 2, "type": "equivalent", "target": "68fc53e5832525f0fc13e98ded49aff3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a61ddcf60161a2d001ef8322d164a9ce79247dd970745dc7dc6e1bb4e810f2ff"}}, {"rule": 2, "type": "equivalent", "target": "757afa6498006786ef942aadca896b7c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a61ddcf60161a2d001ef8322d164a9ce79247dd970745dc7dc6e1bb4e810f2ff"}}, {"rule": 2, "type": "equivalent", "target": "8d0ccb7e11a250148fe2060c4cb25b8b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a61ddcf60161a2d001ef8322d164a9ce79247dd970745dc7dc6e1bb4e810f2ff"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "757afa6498006786ef942aadca896b7c", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 pg_dump 使用 --clean 选项按预期删除事件触发器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a61ddcf60161a2d001ef8322d164a9ce79247dd970745dc7dc6e1bb4e810f2ff"}, "url": "/docs/compare/?release=9.5.8#9.5.8-887efc91c3b9f809", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "68fc53e5832525f0fc13e98ded49aff3", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复 pg_dump 使用 --clean 选项按预期删除事件触发器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a61ddcf60161a2d001ef8322d164a9ce79247dd970745dc7dc6e1bb4e810f2ff"}, "url": "/docs/compare/?release=9.4.13#9.4.13-887efc91c3b9f809", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "8d0ccb7e11a250148fe2060c4cb25b8b", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复 pg_dump 使用 --clean 选项按预期删除事件触发器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a61ddcf60161a2d001ef8322d164a9ce79247dd970745dc7dc6e1bb4e810f2ff"}, "url": "/docs/compare/?release=9.3.18#9.3.18-887efc91c3b9f809", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}]}, {"id": "9.6.4-ecbcc77edc245567", "cves": [], "html": "<p>修复 <span>pg_dump</span> 使用 <code>--clean</code> 选项在 <code>public</code> 模式不存在时不失败（Stephen Frost）</p>", "text": "修复 pg_dump 使用 --clean 选项在 public 模式不存在时不失败（Stephen Frost）", "title": "修复 pg_dump 使用 --clean 选项在 public 模式不存在时不失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "2ccd9390da0a8f80b0afa8ef61ad0ad3ac62b0ba1fc82e694af3115d73c0cfdf", "section_path": ["变更"], "commit_groups": [["4500edc7e", "a2de017b3"]], "identity_text": "Fix pg_dump with the --clean option to not fail when the public schema doesn't exist (Stephen Frost)", "commit_aliases": ["4500edc7e", "a2de017b3"], "source_commits": ["a2de017b3"], "source_entry_id": "9.6.4/changes/043", "db_id": "1e37237081857ffa9c38a77c259a4ab5", "patch_ids": ["9a673a705d8e4e552cbb854e309563e3"], "statement_hash": "a2496db44a18ea77046e590de0696cd4743a2f3845cff3c2dbec7a331bb63175", "relations": [], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.6.4-9548977f836b5c39", "cves": [], "html": "<p>修复 <span>pg_dump</span> 不再为空操作符类发出无效 SQL（Daniel Gustafsson）</p>", "text": "修复 pg_dump 不再为空操作符类发出无效 SQL（Daniel Gustafsson）", "title": "修复 pg_dump 不再为空操作符类发出无效 SQL", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "f5ad6eebaf96f31e58f96e49b42471beb7078553d65280eafb496bcb5467f773", "section_path": ["变更"], "commit_groups": [["0461b66e3", "1cfc9dc75", "41c4eb5ec", "5886c7d58", "a561254e4", "f62e1eff5"]], "identity_text": "Fix pg_dump to not emit invalid SQL for an empty operator class (Daniel Gustafsson)", "commit_aliases": ["0461b66e3", "1cfc9dc75", "41c4eb5ec", "5886c7d58", "a561254e4", "f62e1eff5"], "source_commits": ["5886c7d58"], "source_entry_id": "9.6.4/changes/044", "db_id": "c29c869ad06caa372ac1b5711b9554d1", "patch_ids": ["8b2fa89b416305a76de85c89fa9df638"], "statement_hash": "7de335b3642bf82226d51ea151046738e5a2e1ee3b0e1ec54d6e083213dc5518", "relations": [{"rule": 2, "type": "equivalent", "target": "070697fb947119da494553bda2f124c7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7de335b3642bf82226d51ea151046738e5a2e1ee3b0e1ec54d6e083213dc5518"}}, {"rule": 2, "type": "equivalent", "target": "840b295f4eeb4c935d37f6c1a782f8cc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7de335b3642bf82226d51ea151046738e5a2e1ee3b0e1ec54d6e083213dc5518"}}, {"rule": 2, "type": "equivalent", "target": "86c3940da42bf99013987523bdf3df4a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7de335b3642bf82226d51ea151046738e5a2e1ee3b0e1ec54d6e083213dc5518"}}, {"rule": 2, "type": "equivalent", "target": "e0228a65ed5fca34bd88526c45df6259", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7de335b3642bf82226d51ea151046738e5a2e1ee3b0e1ec54d6e083213dc5518"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e0228a65ed5fca34bd88526c45df6259", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 pg_dump 不再为空操作符类发出无效 SQL", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7de335b3642bf82226d51ea151046738e5a2e1ee3b0e1ec54d6e083213dc5518"}, "url": "/docs/compare/?release=9.5.8#9.5.8-9548977f836b5c39", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "070697fb947119da494553bda2f124c7", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复pg_dump对空操作符类不再输出无效 SQL 的问题", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7de335b3642bf82226d51ea151046738e5a2e1ee3b0e1ec54d6e083213dc5518"}, "url": "/docs/compare/?release=9.4.13#9.4.13-c14b0269dd70314b", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "840b295f4eeb4c935d37f6c1a782f8cc", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复 pg_dump 不再为空操作符类发出无效 SQL", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7de335b3642bf82226d51ea151046738e5a2e1ee3b0e1ec54d6e083213dc5518"}, "url": "/docs/compare/?release=9.3.18#9.3.18-9548977f836b5c39", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "86c3940da42bf99013987523bdf3df4a", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 pg_dump 不再为空操作符类发出无效 SQL", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7de335b3642bf82226d51ea151046738e5a2e1ee3b0e1ec54d6e083213dc5518"}, "url": "/docs/compare/?release=9.2.22#9.2.22-9548977f836b5c39", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-c3797e4f36dc9e64", "cves": [], "html": "<p>修复 <span>pg_dump</span> 在 Windows 上输出到 stdout（Kuntal Ghosh）</p>\n<p>由于未把文件描述符置为二进制模式，写到 stdout 的压缩纯文本转储会包含损坏的数据。</p>", "text": "修复 pg_dump 在 Windows 上输出到 stdout（Kuntal Ghosh） 由于未把文件描述符置为二进制模式，写到 stdout 的压缩纯文本转储会包含损坏的数据。", "title": "修复 pg_dump 在 Windows 上输出到 stdout", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "e20d6b9b8eef49653218c507006232bc76dd49d693dfc8a753c19aab88a6bed8", "section_path": ["变更"], "commit_groups": [["2943c04f7", "3ef40dcec", "4fc274dd8", "bd61d5a19", "c10cbf77a", "d063f972d"]], "identity_text": "Fix pg_dump output to stdout on Windows (Kuntal Ghosh) A compressed plain-text dump written to stdout would contain corrupt data due to failure to put the file descriptor into binary mode.", "commit_aliases": ["2943c04f7", "3ef40dcec", "4fc274dd8", "bd61d5a19", "c10cbf77a", "d063f972d"], "source_commits": ["3ef40dcec"], "source_entry_id": "9.6.4/changes/045", "db_id": "b852a6409848994688858c75c3f50002", "patch_ids": ["93b818b1b400637fddb151bf0c5fc04d"], "statement_hash": "111dfbac0a7cce000d1f37b9a65b7a13f5aa5031add8144bf1fc6cc6f2a8b7d9", "relations": [{"rule": 2, "type": "equivalent", "target": "1abe0946f2900b04706de5182f471b42", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "111dfbac0a7cce000d1f37b9a65b7a13f5aa5031add8144bf1fc6cc6f2a8b7d9"}}, {"rule": 2, "type": "equivalent", "target": "6b7b01759bbaa4b8b22a137cfd58d1e7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "111dfbac0a7cce000d1f37b9a65b7a13f5aa5031add8144bf1fc6cc6f2a8b7d9"}}, {"rule": 2, "type": "equivalent", "target": "a47aefe46f376f522844b44b005ddbf3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "111dfbac0a7cce000d1f37b9a65b7a13f5aa5031add8144bf1fc6cc6f2a8b7d9"}}, {"rule": 2, "type": "equivalent", "target": "e5bf0664cfdd70643c866d5227375b63", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "111dfbac0a7cce000d1f37b9a65b7a13f5aa5031add8144bf1fc6cc6f2a8b7d9"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e5bf0664cfdd70643c866d5227375b63", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 pg_dump 在 Windows 上输出到 stdout", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "111dfbac0a7cce000d1f37b9a65b7a13f5aa5031add8144bf1fc6cc6f2a8b7d9"}, "url": "/docs/compare/?release=9.5.8#9.5.8-c3797e4f36dc9e64", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "6b7b01759bbaa4b8b22a137cfd58d1e7", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复 pg_dump 在 Windows 上输出到 stdout", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "111dfbac0a7cce000d1f37b9a65b7a13f5aa5031add8144bf1fc6cc6f2a8b7d9"}, "url": "/docs/compare/?release=9.4.13#9.4.13-c3797e4f36dc9e64", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "1abe0946f2900b04706de5182f471b42", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复 pg_dump 在 Windows 上输出到 stdout", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "111dfbac0a7cce000d1f37b9a65b7a13f5aa5031add8144bf1fc6cc6f2a8b7d9"}, "url": "/docs/compare/?release=9.3.18#9.3.18-c3797e4f36dc9e64", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "a47aefe46f376f522844b44b005ddbf3", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 pg_dump 在 Windows 上输出到 stdout", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "111dfbac0a7cce000d1f37b9a65b7a13f5aa5031add8144bf1fc6cc6f2a8b7d9"}, "url": "/docs/compare/?release=9.2.22#9.2.22-c3797e4f36dc9e64", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-f12dd04738e5aab4", "cves": [], "html": "<p>修复 <code>pg_get_ruledef()</code> 为列被重命名的视图的 <code>ON SELECT</code> 规则打印正确输出（Tom Lane）</p>\n<p>某些边界情况下 <span>pg_dump</span> 依靠 <code>pg_get_ruledef()</code> 转储视图，因此这个错误可能导致转储/恢复失败。</p>", "text": "修复 pg_get_ruledef() 为列被重命名的视图的 ON SELECT 规则打印正确输出（Tom Lane） 某些边界情况下 pg_dump 依靠 pg_get_ruledef() 转储视图，因此这个错误可能导致转储/恢复失败。", "title": "修复 pg_get_ruledef() 为列被重命名的视图的 ON SELECT 规则打印正确输出", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "8eadc187b02f0158eeb12e8ea59f594117488ef51b98a5eb5dfe1d993a5f39d1", "section_path": ["变更"], "commit_groups": [["3a07ba128", "b4af9e3f3", "b6d640047", "d9874fde8", "f0f255a34", "f579580be"]], "identity_text": "Fix pg_get_ruledef() to print correct output for the ON SELECT rule of a view whose columns have been renamed (Tom Lane) In some corner cases, pg_dump relies on pg_get_ruledef() to dump views, so that this error could result in dump/reload failures.", "commit_aliases": ["3a07ba128", "b4af9e3f3", "b6d640047", "d9874fde8", "f0f255a34", "f579580be"], "source_commits": ["3a07ba128"], "source_entry_id": "9.6.4/changes/046", "db_id": "379c63a4fbb4dcdaffaa11bbc7213eca", "patch_ids": ["922c0001ec872e71ecb122433a64963c"], "statement_hash": "deecfeb804338f704500141f633f4aec3463888f5113fef22d14390c82c3a0e0", "relations": [{"rule": 2, "type": "equivalent", "target": "ad3786d2a2b785ec36e6295358ad1500", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deecfeb804338f704500141f633f4aec3463888f5113fef22d14390c82c3a0e0"}}, {"rule": 2, "type": "equivalent", "target": "e7a4d12b68f9153446325e58a125f61b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deecfeb804338f704500141f633f4aec3463888f5113fef22d14390c82c3a0e0"}}, {"rule": 2, "type": "equivalent", "target": "f2edaf5cc2e703873f5b089f4871f5c0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deecfeb804338f704500141f633f4aec3463888f5113fef22d14390c82c3a0e0"}}, {"rule": 2, "type": "equivalent", "target": "fc89b5ce5ebfa7e39fc68278673e0a30", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deecfeb804338f704500141f633f4aec3463888f5113fef22d14390c82c3a0e0"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ad3786d2a2b785ec36e6295358ad1500", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 pg_get_ruledef() 为列被重命名的视图的 ON SELECT 规则打印正确输出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deecfeb804338f704500141f633f4aec3463888f5113fef22d14390c82c3a0e0"}, "url": "/docs/compare/?release=9.5.8#9.5.8-f12dd04738e5aab4", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "e7a4d12b68f9153446325e58a125f61b", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复 pg_get_ruledef() 为列被重命名的视图的 ON SELECT 规则打印正确输出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deecfeb804338f704500141f633f4aec3463888f5113fef22d14390c82c3a0e0"}, "url": "/docs/compare/?release=9.4.13#9.4.13-f12dd04738e5aab4", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "f2edaf5cc2e703873f5b089f4871f5c0", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复 pg_get_ruledef() 为列被重命名的视图的 ON SELECT 规则打印正确输出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deecfeb804338f704500141f633f4aec3463888f5113fef22d14390c82c3a0e0"}, "url": "/docs/compare/?release=9.3.18#9.3.18-f12dd04738e5aab4", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "fc89b5ce5ebfa7e39fc68278673e0a30", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 pg_get_ruledef() 为列被重命名的视图的 ON SELECT 规则打印正确输出", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "deecfeb804338f704500141f633f4aec3463888f5113fef22d14390c82c3a0e0"}, "url": "/docs/compare/?release=9.2.22#9.2.22-f12dd04738e5aab4", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-0045f537323e513a", "cves": [], "html": "<p>修复带空约束外连接（如没有公共列的 <code>NATURAL LEFT JOIN</code> 的结果）的转储（Tom Lane）</p>", "text": "修复带空约束外连接（如没有公共列的 NATURAL LEFT JOIN 的结果）的转储（Tom Lane）", "title": "修复带空约束外连接（如没有公共列的 NATURAL LEFT JOIN 的结果）的转储", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "bc8175ffcd01659bfc2a4f559776bb8845e422b515a5aa9c534999eeeeff480a", "section_path": ["变更"], "commit_groups": [["41ada8377", "6ab4a1136", "c2bbec9f2", "e947838ae", "eb145fdfe"]], "identity_text": "Fix dumping of outer joins with empty constraints, such as the result of a NATURAL LEFT JOIN with no common columns (Tom Lane)", "commit_aliases": ["41ada8377", "6ab4a1136", "c2bbec9f2", "e947838ae", "eb145fdfe"], "source_commits": ["41ada8377"], "source_entry_id": "9.6.4/changes/047", "db_id": "009dd9aee9e8f4a8eaf5789721b4de32", "patch_ids": ["14983e2e182035444b6bb012c6c15388"], "statement_hash": "4e605ae017996bb370faaed79da333a8e2c72b4d5e7d2f7da17764f86033c4d7", "relations": [{"rule": 2, "type": "equivalent", "target": "7960ba5ff54198dd96a1ae7ea9a99a6b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e605ae017996bb370faaed79da333a8e2c72b4d5e7d2f7da17764f86033c4d7"}}, {"rule": 2, "type": "equivalent", "target": "c3c158c1c2ccacd3d3e4c2c9a1d67c99", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e605ae017996bb370faaed79da333a8e2c72b4d5e7d2f7da17764f86033c4d7"}}, {"rule": 2, "type": "equivalent", "target": "eaa0478fcabd4701e6093674de12517a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e605ae017996bb370faaed79da333a8e2c72b4d5e7d2f7da17764f86033c4d7"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7960ba5ff54198dd96a1ae7ea9a99a6b", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复带空约束外连接（如没有公共列的 NATURAL LEFT JOIN 的结果）的转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e605ae017996bb370faaed79da333a8e2c72b4d5e7d2f7da17764f86033c4d7"}, "url": "/docs/compare/?release=9.5.8#9.5.8-0045f537323e513a", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "c3c158c1c2ccacd3d3e4c2c9a1d67c99", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复对带空约束的外连接（例如没有公共列的NATURAL LEFT JOIN结果）的转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e605ae017996bb370faaed79da333a8e2c72b4d5e7d2f7da17764f86033c4d7"}, "url": "/docs/compare/?release=9.4.13#9.4.13-e5b8203faf687afe", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "eaa0478fcabd4701e6093674de12517a", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复带空约束外连接（如没有公共列的 NATURAL LEFT JOIN 的结果）的转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e605ae017996bb370faaed79da333a8e2c72b4d5e7d2f7da17764f86033c4d7"}, "url": "/docs/compare/?release=9.3.18#9.3.18-0045f537323e513a", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}]}, {"id": "9.6.4-7d3ecdbba5e8d785", "cves": [], "html": "<p>修复 <code>FROM</code> 子句中函数表达式不能反解析为看起来像函数调用的东西时的转储（Tom Lane）</p>", "text": "修复 FROM 子句中函数表达式不能反解析为看起来像函数调用的东西时的转储（Tom Lane）", "title": "修复 FROM 子句中函数表达式不能反解析为看起来像函数调用的东西时的转储", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "f3b2c2df878ed6613b19e6e57d96492a2f5c9d5ac704757033f6f2f2a254759c", "section_path": ["变更"], "commit_groups": [["0ecc407d9", "26d867875", "3b0c2dbed", "3fbebd781", "a3ca72ae9", "bccfb1776"]], "identity_text": "Fix dumping of function expressions in the FROM clause in cases where the expression does not deparse into something that looks like a function call (Tom Lane)", "commit_aliases": ["0ecc407d9", "26d867875", "3b0c2dbed", "3fbebd781", "a3ca72ae9", "bccfb1776"], "source_commits": ["3b0c2dbed"], "source_entry_id": "9.6.4/changes/048", "db_id": "a365a08bf964ae0b5d013c3af4a2b944", "patch_ids": ["33dc925f9f8d2f8c2cf5f0fa3ce693f8"], "statement_hash": "514d845021b6bb0da9cd37acb09aa6168f6a17568b4501fe630c77b40aba9cb6", "relations": [{"rule": 2, "type": "equivalent", "target": "18b23ab20491f4af49f50eb180188cc8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "514d845021b6bb0da9cd37acb09aa6168f6a17568b4501fe630c77b40aba9cb6"}}, {"rule": 2, "type": "equivalent", "target": "27c42f004a817bb395e89624d4c8565b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "514d845021b6bb0da9cd37acb09aa6168f6a17568b4501fe630c77b40aba9cb6"}}, {"rule": 2, "type": "equivalent", "target": "5d279250db704303c3619d09775e014d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "514d845021b6bb0da9cd37acb09aa6168f6a17568b4501fe630c77b40aba9cb6"}}, {"rule": 2, "type": "equivalent", "target": "b4620d508b6c65d987d28869d58a5933", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "514d845021b6bb0da9cd37acb09aa6168f6a17568b4501fe630c77b40aba9cb6"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "18b23ab20491f4af49f50eb180188cc8", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 FROM 子句中函数表达式不能反解析为看起来像函数调用的东西时的转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "514d845021b6bb0da9cd37acb09aa6168f6a17568b4501fe630c77b40aba9cb6"}, "url": "/docs/compare/?release=9.5.8#9.5.8-7d3ecdbba5e8d785", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "b4620d508b6c65d987d28869d58a5933", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复FROM子句中函数表达式在表达式无法反向解析为类似函数调用形式时的转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "514d845021b6bb0da9cd37acb09aa6168f6a17568b4501fe630c77b40aba9cb6"}, "url": "/docs/compare/?release=9.4.13#9.4.13-56b4ce7fa2730c8c", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "27c42f004a817bb395e89624d4c8565b", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复 FROM 子句中函数表达式不能反解析为看起来像函数调用的东西时的转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "514d845021b6bb0da9cd37acb09aa6168f6a17568b4501fe630c77b40aba9cb6"}, "url": "/docs/compare/?release=9.3.18#9.3.18-7d3ecdbba5e8d785", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "5d279250db704303c3619d09775e014d", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 FROM 子句中函数表达式不能反解析为看起来像函数调用的东西时的转储", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "514d845021b6bb0da9cd37acb09aa6168f6a17568b4501fe630c77b40aba9cb6"}, "url": "/docs/compare/?release=9.2.22#9.2.22-7d3ecdbba5e8d785", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-5fa98197263eb565", "cves": [], "html": "<p>修复 <span>pg_basebackup</span> 在 Windows 上输出到 stdout（Haribabu Kommi）</p>\n<p>由于未把文件描述符置为二进制模式，写到 stdout 的备份会包含损坏的数据。</p>", "text": "修复 pg_basebackup 在 Windows 上输出到 stdout（Haribabu Kommi） 由于未把文件描述符置为二进制模式，写到 stdout 的备份会包含损坏的数据。", "title": "修复 pg_basebackup 在 Windows 上输出到 stdout", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "f6a76e56d938889de0296e7168f25bd6662d641d386d3f9c2511bf50ed9dbf2a", "section_path": ["变更"], "commit_groups": [["240299806", "4b994a96c", "8046465c2", "cedd25ae8", "f20d58a6f", "f3633689f"]], "identity_text": "Fix pg_basebackup output to stdout on Windows (Haribabu Kommi) A backup written to stdout would contain corrupt data due to failure to put the file descriptor into binary mode.", "commit_aliases": ["240299806", "4b994a96c", "8046465c2", "cedd25ae8", "f20d58a6f", "f3633689f"], "source_commits": ["cedd25ae8"], "source_entry_id": "9.6.4/changes/049", "db_id": "89dda01ba3a5a13f897a1a2eeedc22c3", "patch_ids": ["e0eda00344e2804279cabd6b22f9128f"], "statement_hash": "a286d052154c786c12f9b5a6cf0098abf3c0ae0510a93fdee6d012c92518b029", "relations": [{"rule": 2, "type": "equivalent", "target": "02eb1abc2b9a20b762b97b41818a87d7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a286d052154c786c12f9b5a6cf0098abf3c0ae0510a93fdee6d012c92518b029"}}, {"rule": 2, "type": "equivalent", "target": "0fb0d233c8ad9c02e201adbd5a151955", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a286d052154c786c12f9b5a6cf0098abf3c0ae0510a93fdee6d012c92518b029"}}, {"rule": 2, "type": "equivalent", "target": "b8cb17a32cde2cf63f99f0b6568d654f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a286d052154c786c12f9b5a6cf0098abf3c0ae0510a93fdee6d012c92518b029"}}, {"rule": 2, "type": "equivalent", "target": "d4936f7a2cda683f2cdaf1bd900d931c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a286d052154c786c12f9b5a6cf0098abf3c0ae0510a93fdee6d012c92518b029"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "d4936f7a2cda683f2cdaf1bd900d931c", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 pg_basebackup 在 Windows 上输出到 stdout", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a286d052154c786c12f9b5a6cf0098abf3c0ae0510a93fdee6d012c92518b029"}, "url": "/docs/compare/?release=9.5.8#9.5.8-5fa98197263eb565", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "b8cb17a32cde2cf63f99f0b6568d654f", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复 pg_basebackup 在 Windows 上输出到 stdout", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a286d052154c786c12f9b5a6cf0098abf3c0ae0510a93fdee6d012c92518b029"}, "url": "/docs/compare/?release=9.4.13#9.4.13-5fa98197263eb565", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "02eb1abc2b9a20b762b97b41818a87d7", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复 pg_basebackup 在 Windows 上输出到 stdout", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a286d052154c786c12f9b5a6cf0098abf3c0ae0510a93fdee6d012c92518b029"}, "url": "/docs/compare/?release=9.3.18#9.3.18-5fa98197263eb565", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "0fb0d233c8ad9c02e201adbd5a151955", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 pg_basebackup 在 Windows 上输出到 stdout", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a286d052154c786c12f9b5a6cf0098abf3c0ae0510a93fdee6d012c92518b029"}, "url": "/docs/compare/?release=9.2.22#9.2.22-5fa98197263eb565", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-dfec0353901a48ba", "cves": [], "html": "<p>修复 <span>pg_rewind</span> 正确处理超过 2GB 的文件（Kuntal Ghosh、Michael Paquier）</p>\n<p>通常这种文件不会出现在 <span>PostgreSQL</span> 数据目录中，但在某些情况下可能存在。</p>", "text": "修复 pg_rewind 正确处理超过 2GB 的文件（Kuntal Ghosh、Michael Paquier） 通常这种文件不会出现在 PostgreSQL 数据目录中，但在某些情况下可能存在。", "title": "修复 pg_rewind 正确处理超过 2GB 的文件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "3c38775ba9a42d1b66a4ac6fe82f59e16501fcaeead1f00279c61e6928c86580", "section_path": ["变更"], "commit_groups": [["73fbf3d3d", "a46fe6e8b", "ed367be64"]], "identity_text": "Fix pg_rewind to correctly handle files exceeding 2GB (Kuntal Ghosh, Michael Paquier) Ordinarily such files won't appear in PostgreSQL data directories, but they could be present in some cases.", "commit_aliases": ["73fbf3d3d", "a46fe6e8b", "ed367be64"], "source_commits": ["73fbf3d3d"], "source_entry_id": "9.6.4/changes/050", "db_id": "220299b9e1cc63fcdcb2f1a62394e134", "patch_ids": ["3d03f148c7cf9377472793fbeff6b4bd"], "statement_hash": "35cdc8405ed68518a45691a28e3aafac5311d964aca3d9c7bdf358021f499984", "relations": [{"rule": 2, "type": "equivalent", "target": "611aac862e1cbacc1a4106e3f9dfd21b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "35cdc8405ed68518a45691a28e3aafac5311d964aca3d9c7bdf358021f499984"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "611aac862e1cbacc1a4106e3f9dfd21b", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 pg_rewind 正确处理超过 2GB 的文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "35cdc8405ed68518a45691a28e3aafac5311d964aca3d9c7bdf358021f499984"}, "url": "/docs/compare/?release=9.5.8#9.5.8-dfec0353901a48ba", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}]}, {"id": "9.6.4-057eae6ce988e826", "cves": [], "html": "<p>修复 <span>pg_upgrade</span> 确保结束 WAL 记录不具有<a href=\"/docs/9.6/runtime-config-wal.html#GUC-WAL-LEVEL\">wal_level</a> = <code>minimum</code>（Bruce Momjian）</p>\n<p>这一条件可能阻止升级后的备库服务器重新连接。</p>", "text": "修复 pg_upgrade 确保结束 WAL 记录不具有wal_level = minimum（Bruce Momjian） 这一条件可能阻止升级后的备库服务器重新连接。", "title": "修复 pg_upgrade 确保结束 WAL 记录不具有wal_level = minimum", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "442b3e983d0057f74dfd865ebeaeebc8253a94b6b0e0a6e9abc3ef5fd9c73076", "section_path": ["变更"], "commit_groups": [["0efdbd323", "5c890645d", "65beccae5", "a0e854881", "b710248dd", "f4f867bda"]], "identity_text": "Fix pg_upgrade to ensure that the ending WAL record does not have guc-wal-level = minimum (Bruce Momjian) This condition could prevent upgraded standby servers from reconnecting.", "commit_aliases": ["0efdbd323", "5c890645d", "65beccae5", "a0e854881", "b710248dd", "f4f867bda"], "source_commits": ["0efdbd323"], "source_entry_id": "9.6.4/changes/051", "db_id": "ed0d7539c7cc60379dde8603ba837426", "patch_ids": ["29abe5865f248f1dd4b66003e2e49a33"], "statement_hash": "c939478b340113005a516c99e5cc921f83bdac881bef19fa965653f828e0acdb", "relations": [{"rule": 2, "type": "equivalent", "target": "5fffffcb249499b6b89e60eb86efe93f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c939478b340113005a516c99e5cc921f83bdac881bef19fa965653f828e0acdb"}}, {"rule": 2, "type": "equivalent", "target": "70779e891888cb9fd45c465d792baee9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c939478b340113005a516c99e5cc921f83bdac881bef19fa965653f828e0acdb"}}, {"rule": 2, "type": "equivalent", "target": "9ae680ee51cfb93f20beb90598dc48c1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c939478b340113005a516c99e5cc921f83bdac881bef19fa965653f828e0acdb"}}, {"rule": 2, "type": "equivalent", "target": "cc2cb7fef069b9f35fc77bf5ea661129", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c939478b340113005a516c99e5cc921f83bdac881bef19fa965653f828e0acdb"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "cc2cb7fef069b9f35fc77bf5ea661129", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 pg_upgrade 确保结束 WAL 记录不具有wal_level = minimum", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c939478b340113005a516c99e5cc921f83bdac881bef19fa965653f828e0acdb"}, "url": "/docs/compare/?release=9.5.8#9.5.8-057eae6ce988e826", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "5fffffcb249499b6b89e60eb86efe93f", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "修复 pg_upgrade 确保结束 WAL 记录不具有wal_level = minimum", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c939478b340113005a516c99e5cc921f83bdac881bef19fa965653f828e0acdb"}, "url": "/docs/compare/?release=9.4.13#9.4.13-057eae6ce988e826", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "70779e891888cb9fd45c465d792baee9", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "修复 pg_upgrade 确保结束 WAL 记录不具有wal_level = minimum", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c939478b340113005a516c99e5cc921f83bdac881bef19fa965653f828e0acdb"}, "url": "/docs/compare/?release=9.3.18#9.3.18-057eae6ce988e826", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "9ae680ee51cfb93f20beb90598dc48c1", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "修复 pg_upgrade 确保结束 WAL 记录不具有wal_level = minimum", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c939478b340113005a516c99e5cc921f83bdac881bef19fa965653f828e0acdb"}, "url": "/docs/compare/?release=9.2.22#9.2.22-057eae6ce988e826", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-ed461dd6690dc561", "cves": [], "html": "<p>修复 <span>pg_xlogdump</span> 对 WAL 记录长度的计算（Andres Freund）</p>", "text": "修复 pg_xlogdump 对 WAL 记录长度的计算（Andres Freund）", "title": "修复 pg_xlogdump 对 WAL 记录长度的计算", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "6ef126252566f7ccd902f0e2f0f6a0495c67139d6bb7838dd2924a06e677367a", "section_path": ["变更"], "commit_groups": [["25653c171", "c25ed2006", "d3ca4b4b4"]], "identity_text": "Fix pg_xlogdump's computation of WAL record length (Andres Freund)", "commit_aliases": ["25653c171", "c25ed2006", "d3ca4b4b4"], "source_commits": ["d3ca4b4b4"], "source_entry_id": "9.6.4/changes/052", "db_id": "b291bdd517c7cf81f97f2bdb6d43484c", "patch_ids": ["df2da976def64785188d886ba24915ef"], "statement_hash": "9f1c3d77ca9ae42d10b949eaf78f3b209761b8733caeb535b24c76aefd9e0996", "relations": [{"rule": 2, "type": "equivalent", "target": "e5c6dce769c0d772b9a73e27653eeded", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9f1c3d77ca9ae42d10b949eaf78f3b209761b8733caeb535b24c76aefd9e0996"}}], "version": "9.6.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e5c6dce769c0d772b9a73e27653eeded", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "修复 pg_xlogdump 对 WAL 记录长度的计算", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9f1c3d77ca9ae42d10b949eaf78f3b209761b8733caeb535b24c76aefd9e0996"}, "url": "/docs/compare/?release=9.5.8#9.5.8-ed461dd6690dc561", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}]}, {"id": "9.6.4-3146732edb16f5bc", "cves": [], "html": "<p>在 <code>postgres_fdw</code> 中，<code>ALTER SERVER</code> 或 <code>ALTER USER MAPPING</code> 命令之后重建到远程服务器的连接（Kyotaro Horiguchi）</p>\n<p>这确保影响连接参数的选项更改被及时应用。</p>", "text": "在 postgres_fdw 中，ALTER SERVER 或 ALTER USER MAPPING 命令之后重建到远程服务器的连接（Kyotaro Horiguchi） 这确保影响连接参数的选项更改被及时应用。", "title": "在 postgres_fdw 中，ALTER SERVER 或 ALTER USER MAPPING 命令之后重建到远程服务器的连接", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "42bf1468d2163140a0edb6036a7c6d99cf16ef0b906243be09fe6a86ebeca157", "section_path": ["变更"], "commit_groups": [["0d503dd1f", "6d9de660d", "88f48b57f", "90877d28e", "a648fc70a"], ["69711415e", "72318eaed", "8bf58c0d9", "cb2b1cac0", "d86a2b7b5"]], "identity_text": "In postgres_fdw, re-establish connections to remote servers after ALTER SERVER or ALTER USER MAPPING commands (Kyotaro Horiguchi) This ensures that option changes affecting connection parameters will be applied promptly.", "commit_aliases": ["0d503dd1f", "69711415e", "6d9de660d", "72318eaed", "88f48b57f", "8bf58c0d9", "90877d28e", "a648fc70a", "cb2b1cac0", "d86a2b7b5"], "source_commits": ["0d503dd1f", "d86a2b7b5"], "source_entry_id": "9.6.4/changes/053", "db_id": "0577b3aa5522ea1e273982f5ddacc2a1", "patch_ids": ["28acb7b8b7d378196ee42daf55835726", "d4da6fefc3b34588cf2c57450e410cc1"], "statement_hash": "47f1c82dad6d198721a70669663bf9d431186ff73b99825a0a76f76a66b6fb3d", "relations": [{"rule": 2, "type": "equivalent", "target": "8f622e5b02ead97c90bde2fcc254e6c6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "47f1c82dad6d198721a70669663bf9d431186ff73b99825a0a76f76a66b6fb3d"}}, {"rule": 2, "type": "equivalent", "target": "94250a16e17dfa2eb9ed8f99cfda6c17", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "47f1c82dad6d198721a70669663bf9d431186ff73b99825a0a76f76a66b6fb3d"}}, {"rule": 2, "type": "equivalent", "target": "b29b29297c8df354d55917285ee410c4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "47f1c82dad6d198721a70669663bf9d431186ff73b99825a0a76f76a66b6fb3d"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8f622e5b02ead97c90bde2fcc254e6c6", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "在 postgres_fdw 中，ALTER SERVER 或 ALTER USER MAPPING 命令之后重建到远程服务器的连接", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "47f1c82dad6d198721a70669663bf9d431186ff73b99825a0a76f76a66b6fb3d"}, "url": "/docs/compare/?release=9.5.8#9.5.8-3146732edb16f5bc", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "94250a16e17dfa2eb9ed8f99cfda6c17", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "在 postgres_fdw 中，ALTER SERVER 或 ALTER USER MAPPING 命令之后重建到远程服务器的连接", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "47f1c82dad6d198721a70669663bf9d431186ff73b99825a0a76f76a66b6fb3d"}, "url": "/docs/compare/?release=9.4.13#9.4.13-3146732edb16f5bc", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "b29b29297c8df354d55917285ee410c4", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "在 postgres_fdw 中，ALTER SERVER 或 ALTER USER MAPPING 命令之后重建到远程服务器的连接", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "47f1c82dad6d198721a70669663bf9d431186ff73b99825a0a76f76a66b6fb3d"}, "url": "/docs/compare/?release=9.3.18#9.3.18-3146732edb16f5bc", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}]}, {"id": "9.6.4-afa0bc63a7dcc349", "cves": [], "html": "<p>在 <code>postgres_fdw</code> 中，允许取消远程事务控制命令（Robert Haas、Rafia Sabih）</p>\n<p>这一更改使我们能在比以前多得多的情况下快速摆脱对无响应远程服务器的等待。</p>", "text": "在 postgres_fdw 中，允许取消远程事务控制命令（Robert Haas、Rafia Sabih） 这一更改使我们能在比以前多得多的情况下快速摆脱对无响应远程服务器的等待。", "title": "在 postgres_fdw 中，允许取消远程事务控制命令", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "e4d2b4111711c9be0949ad922ee5a82617f1ed354ebc2ee3be4055828c0d5832", "section_path": ["变更"], "commit_groups": [["ae9bfc5d6", "b7665f079", "c02c450cf", "fc267a0c3", "fd849956c"]], "identity_text": "In postgres_fdw, allow cancellation of remote transaction control commands (Robert Haas, Rafia Sabih) This change allows us to quickly escape a wait for an unresponsive remote server in many more cases than previously.", "commit_aliases": ["ae9bfc5d6", "b7665f079", "c02c450cf", "fc267a0c3", "fd849956c"], "source_commits": ["fd849956c"], "source_entry_id": "9.6.4/changes/054", "db_id": "b843661c6ce7490ed5abd624d1949ecc", "patch_ids": ["0eeb23b538d048480847bea5b8a99fba"], "statement_hash": "c8e40e4272e8e67fe7ef5d4b07a1c030ba259ad7d5aecba3ee6742bb4b9fdf02", "relations": [{"rule": 2, "type": "equivalent", "target": "68cac93c846a20baf38128bd29308781", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8e40e4272e8e67fe7ef5d4b07a1c030ba259ad7d5aecba3ee6742bb4b9fdf02"}}, {"rule": 2, "type": "equivalent", "target": "b15160e72ef4a8a96223642acaf1f71e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8e40e4272e8e67fe7ef5d4b07a1c030ba259ad7d5aecba3ee6742bb4b9fdf02"}}, {"rule": 2, "type": "equivalent", "target": "f9d5f9fb37faff9c5e79adfbf0b454b9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8e40e4272e8e67fe7ef5d4b07a1c030ba259ad7d5aecba3ee6742bb4b9fdf02"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "68cac93c846a20baf38128bd29308781", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "在 postgres_fdw 中，允许取消远程事务控制命令", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8e40e4272e8e67fe7ef5d4b07a1c030ba259ad7d5aecba3ee6742bb4b9fdf02"}, "url": "/docs/compare/?release=9.5.8#9.5.8-afa0bc63a7dcc349", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "f9d5f9fb37faff9c5e79adfbf0b454b9", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "在 postgres_fdw 中，允许取消远程事务控制命令", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8e40e4272e8e67fe7ef5d4b07a1c030ba259ad7d5aecba3ee6742bb4b9fdf02"}, "url": "/docs/compare/?release=9.4.13#9.4.13-afa0bc63a7dcc349", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "b15160e72ef4a8a96223642acaf1f71e", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "在 postgres_fdw 中，允许取消远程事务控制命令", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8e40e4272e8e67fe7ef5d4b07a1c030ba259ad7d5aecba3ee6742bb4b9fdf02"}, "url": "/docs/compare/?release=9.3.18#9.3.18-afa0bc63a7dcc349", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}]}, {"id": "9.6.4-7c01090eeb995200", "cves": [], "html": "<p>增大 <code>MAX_SYSCACHE_CALLBACKS</code>，为扩展提供更多空间（Tom Lane）</p>", "text": "增大 MAX_SYSCACHE_CALLBACKS，为扩展提供更多空间（Tom Lane）", "title": "增大 MAX_SYSCACHE_CALLBACKS，为扩展提供更多空间", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "58e6c643f71170c45c2aabc27487543e909ff4eaff1074aba6c3d4486cb9bf5d", "section_path": ["变更"], "commit_groups": [["128e133cc", "596a7c8df", "5c633f76b", "6f2fe2468"]], "identity_text": "Increase MAX_SYSCACHE_CALLBACKS to provide more room for extensions (Tom Lane)", "commit_aliases": ["128e133cc", "596a7c8df", "5c633f76b", "6f2fe2468"], "source_commits": ["128e133cc"], "source_entry_id": "9.6.4/changes/055", "db_id": "a0f8011dc1c5eca10f49457e5e21c529", "patch_ids": ["eabefab63fe2c4aa668e2a927dead637"], "statement_hash": "b96bdf342989742e20675cb1885dce5ebd95fccc08c6b6f6c17369965fdfe59e", "relations": [{"rule": 2, "type": "equivalent", "target": "4a4ebed6881c0a5f0c87e713f60c380d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b96bdf342989742e20675cb1885dce5ebd95fccc08c6b6f6c17369965fdfe59e"}}, {"rule": 2, "type": "equivalent", "target": "73822ea00152785455842a53ce614cc2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b96bdf342989742e20675cb1885dce5ebd95fccc08c6b6f6c17369965fdfe59e"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4a4ebed6881c0a5f0c87e713f60c380d", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "增大 MAX_SYSCACHE_CALLBACKS，为扩展提供更多空间", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b96bdf342989742e20675cb1885dce5ebd95fccc08c6b6f6c17369965fdfe59e"}, "url": "/docs/compare/?release=9.5.8#9.5.8-7c01090eeb995200", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "73822ea00152785455842a53ce614cc2", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "提高MAX_SYSCACHE_CALLBACKS以为扩展提供更多空间", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "b96bdf342989742e20675cb1885dce5ebd95fccc08c6b6f6c17369965fdfe59e"}, "url": "/docs/compare/?release=9.4.13#9.4.13-92283afb0d4454d2", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}]}, {"id": "9.6.4-206b0d511840b329", "cves": [], "html": "<p>用 gcc 构建共享库时始终使用 <code>-fPIC</code> 而不是 <code>-fpic</code>（Tom Lane）</p>\n<p>这在有差别的平台上支持更大的扩展库。</p>", "text": "用 gcc 构建共享库时始终使用 -fPIC 而不是 -fpic（Tom Lane） 这在有差别的平台上支持更大的扩展库。", "title": "用 gcc 构建共享库时始终使用 -fPIC 而不是 -fpic", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "f7a5326f3f1e0beca66505e8e9d389b9f3a9fb678bad3721d7ed026a78ee98a5", "section_path": ["变更"], "commit_groups": [["68938ab8e", "894ce0e97", "8d9b4fe01", "a378b9bc2", "cee7238de", "e9a3c047a"]], "identity_text": "Always use -fPIC, not -fpic, when building shared libraries with gcc (Tom Lane) This supports larger extension libraries on platforms where it makes a difference.", "commit_aliases": ["68938ab8e", "894ce0e97", "8d9b4fe01", "a378b9bc2", "cee7238de", "e9a3c047a"], "source_commits": ["8d9b4fe01"], "source_entry_id": "9.6.4/changes/056", "db_id": "88836e2b0a18775d156de14ee0ec0b35", "patch_ids": ["4ff7793202042e3f9216122d21959583"], "statement_hash": "4d1126f9dcefe9dbbdaaa697b8efdbaf4769c29b2b78282fc8b5f6348e9c6fbf", "relations": [{"rule": 2, "type": "equivalent", "target": "09be3ad89f8721a50b41d56c4f7a06ab", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d1126f9dcefe9dbbdaaa697b8efdbaf4769c29b2b78282fc8b5f6348e9c6fbf"}}, {"rule": 2, "type": "equivalent", "target": "283f393e01a328dd5c4a3b42e8f2fe97", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d1126f9dcefe9dbbdaaa697b8efdbaf4769c29b2b78282fc8b5f6348e9c6fbf"}}, {"rule": 2, "type": "equivalent", "target": "4dc83f6692ada3a0722e84b153a661f6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d1126f9dcefe9dbbdaaa697b8efdbaf4769c29b2b78282fc8b5f6348e9c6fbf"}}, {"rule": 2, "type": "equivalent", "target": "7f021a07a0f5f6e98690d6b7807ca400", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d1126f9dcefe9dbbdaaa697b8efdbaf4769c29b2b78282fc8b5f6348e9c6fbf"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4dc83f6692ada3a0722e84b153a661f6", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "用 gcc 构建共享库时始终使用 -fPIC 而不是 -fpic", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d1126f9dcefe9dbbdaaa697b8efdbaf4769c29b2b78282fc8b5f6348e9c6fbf"}, "url": "/docs/compare/?release=9.5.8#9.5.8-206b0d511840b329", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "7f021a07a0f5f6e98690d6b7807ca400", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "用 gcc 构建共享库时始终使用 -fPIC 而不是 -fpic", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d1126f9dcefe9dbbdaaa697b8efdbaf4769c29b2b78282fc8b5f6348e9c6fbf"}, "url": "/docs/compare/?release=9.4.13#9.4.13-206b0d511840b329", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "283f393e01a328dd5c4a3b42e8f2fe97", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "用 gcc 构建共享库时始终使用 -fPIC 而不是 -fpic", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d1126f9dcefe9dbbdaaa697b8efdbaf4769c29b2b78282fc8b5f6348e9c6fbf"}, "url": "/docs/compare/?release=9.3.18#9.3.18-206b0d511840b329", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "09be3ad89f8721a50b41d56c4f7a06ab", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "用 gcc 构建共享库时始终使用 -fPIC 而不是 -fpic", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4d1126f9dcefe9dbbdaaa697b8efdbaf4769c29b2b78282fc8b5f6348e9c6fbf"}, "url": "/docs/compare/?release=9.2.22#9.2.22-206b0d511840b329", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-0d6cc60c08d63989", "cves": [], "html": "<p>在 MSVC 构建中，处理 <span>openssl</span> 库不在 <code>VC</code> 子目录内的情况（Andrew Dunstan）</p>", "text": "在 MSVC 构建中，处理 openssl 库不在 VC 子目录内的情况（Andrew Dunstan）", "title": "在 MSVC 构建中，处理 openssl 库不在 VC 子目录内的情况", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "a79bd947f2a8f2e4f1ef093f1bb7c8fefcf09678fdaf4a9376c57f43b2a99899", "section_path": ["变更"], "commit_groups": [["0fde390f6", "307fc49d5", "545dc4d21", "614350a3a", "b64ff9c5a", "fe39a086d"], ["2e02136fe", "6da999635", "b2482ab83", "da30fa603", "ec504aff7", "f964a7c5a"]], "identity_text": "In MSVC builds, handle the case where the openssl library is not within a VC subdirectory (Andrew Dunstan)", "commit_aliases": ["0fde390f6", "2e02136fe", "307fc49d5", "545dc4d21", "614350a3a", "6da999635", "b2482ab83", "b64ff9c5a", "da30fa603", "ec504aff7", "f964a7c5a", "fe39a086d"], "source_commits": ["b64ff9c5a", "ec504aff7"], "source_entry_id": "9.6.4/changes/057", "db_id": "5ba5c3c618b18840b6e7ea4b065e8eff", "patch_ids": ["69ca4112afe2ba6074a97471fdaf14f0", "a6aba0d99f5ca99dd81c6c0c59870891"], "statement_hash": "829536b9e1207eaea1aa6d43b85a8d8d1203c2f68ea907fb959d536c744d5143", "relations": [{"rule": 2, "type": "equivalent", "target": "2ffe419c5f7176f78b624e77d8ed0445", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "829536b9e1207eaea1aa6d43b85a8d8d1203c2f68ea907fb959d536c744d5143"}}, {"rule": 2, "type": "equivalent", "target": "4987cc700fdf507f6d116cb8c00a95f2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "829536b9e1207eaea1aa6d43b85a8d8d1203c2f68ea907fb959d536c744d5143"}}, {"rule": 2, "type": "equivalent", "target": "b1e8c52cd265fcb98d29ef30f720c81d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "829536b9e1207eaea1aa6d43b85a8d8d1203c2f68ea907fb959d536c744d5143"}}, {"rule": 2, "type": "equivalent", "target": "e2a259345722af9b05ae29fa2570b75e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "829536b9e1207eaea1aa6d43b85a8d8d1203c2f68ea907fb959d536c744d5143"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2ffe419c5f7176f78b624e77d8ed0445", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "在 MSVC 构建中，处理 openssl 库不在 VC 子目录内的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "829536b9e1207eaea1aa6d43b85a8d8d1203c2f68ea907fb959d536c744d5143"}, "url": "/docs/compare/?release=9.5.8#9.5.8-0d6cc60c08d63989", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "b1e8c52cd265fcb98d29ef30f720c81d", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "MSVC 构建中，处理openssl库不在VC子目录内的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "829536b9e1207eaea1aa6d43b85a8d8d1203c2f68ea907fb959d536c744d5143"}, "url": "/docs/compare/?release=9.4.13#9.4.13-41e2b916a89271ec", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "e2a259345722af9b05ae29fa2570b75e", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "在 MSVC 构建中，处理 openssl 库不在 VC 子目录内的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "829536b9e1207eaea1aa6d43b85a8d8d1203c2f68ea907fb959d536c744d5143"}, "url": "/docs/compare/?release=9.3.18#9.3.18-0d6cc60c08d63989", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "4987cc700fdf507f6d116cb8c00a95f2", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "在 MSVC 构建中，处理 openssl 库不在 VC 子目录内的情况", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "829536b9e1207eaea1aa6d43b85a8d8d1203c2f68ea907fb959d536c744d5143"}, "url": "/docs/compare/?release=9.2.22#9.2.22-0d6cc60c08d63989", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-52a5f74194c8f736", "cves": [], "html": "<p>在 MSVC 构建中，为 <span>libxml2</span> 头文件添加正确的包含路径（Andrew Dunstan）</p>\n<p>这修复了以前需要移动标准 Windows 安装的 <span>libxml2</span> 中某些东西的需要。</p>", "text": "在 MSVC 构建中，为 libxml2 头文件添加正确的包含路径（Andrew Dunstan） 这修复了以前需要移动标准 Windows 安装的 libxml2 中某些东西的需要。", "title": "在 MSVC 构建中，为 libxml2 头文件添加正确的包含路径", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "bd6cfbc7aad7d34cf37574fda546a0745a48f363f11a839f4e538cbb5b8c98bf", "section_path": ["变更"], "commit_groups": [["2c7d2114b", "614f83c12", "616dd9978", "69ce3ead1", "8ec82ee6a", "b757e01f6"]], "identity_text": "In MSVC builds, add proper include path for libxml2 header files (Andrew Dunstan) This fixes a former need to move things around in standard Windows installations of libxml2.", "commit_aliases": ["2c7d2114b", "614f83c12", "616dd9978", "69ce3ead1", "8ec82ee6a", "b757e01f6"], "source_commits": ["69ce3ead1"], "source_entry_id": "9.6.4/changes/058", "db_id": "8461d768f61b233b5f9b20907c2a131a", "patch_ids": ["dfcb841675832a8675e7460a2d66c9c4"], "statement_hash": "e49ed0bfe8704825a620f2bcb44dd827a5eef57c3287c696e45f75ec61938840", "relations": [{"rule": 2, "type": "equivalent", "target": "02e85494d7f70ee9aec00724e9cea8e9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e49ed0bfe8704825a620f2bcb44dd827a5eef57c3287c696e45f75ec61938840"}}, {"rule": 2, "type": "equivalent", "target": "5a23348b20eaec0a5ee2ec9cf24180ca", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e49ed0bfe8704825a620f2bcb44dd827a5eef57c3287c696e45f75ec61938840"}}, {"rule": 2, "type": "equivalent", "target": "69a1c1ee3e2fd1046eb41dae764406d3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e49ed0bfe8704825a620f2bcb44dd827a5eef57c3287c696e45f75ec61938840"}}, {"rule": 2, "type": "equivalent", "target": "cf9983c3fe174fb913939e9666d03f02", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e49ed0bfe8704825a620f2bcb44dd827a5eef57c3287c696e45f75ec61938840"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "69a1c1ee3e2fd1046eb41dae764406d3", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "在 MSVC 构建中，为 libxml2 头文件添加正确的包含路径", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e49ed0bfe8704825a620f2bcb44dd827a5eef57c3287c696e45f75ec61938840"}, "url": "/docs/compare/?release=9.5.8#9.5.8-52a5f74194c8f736", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "cf9983c3fe174fb913939e9666d03f02", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "在 MSVC 构建中，为 libxml2 头文件添加正确的包含路径", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e49ed0bfe8704825a620f2bcb44dd827a5eef57c3287c696e45f75ec61938840"}, "url": "/docs/compare/?release=9.4.13#9.4.13-52a5f74194c8f736", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "5a23348b20eaec0a5ee2ec9cf24180ca", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "在 MSVC 构建中，为 libxml2 头文件添加正确的包含路径", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e49ed0bfe8704825a620f2bcb44dd827a5eef57c3287c696e45f75ec61938840"}, "url": "/docs/compare/?release=9.3.18#9.3.18-52a5f74194c8f736", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "02e85494d7f70ee9aec00724e9cea8e9", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "在 MSVC 构建中，为 libxml2 头文件添加正确的包含路径", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e49ed0bfe8704825a620f2bcb44dd827a5eef57c3287c696e45f75ec61938840"}, "url": "/docs/compare/?release=9.2.22#9.2.22-52a5f74194c8f736", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-09717ca3220cfa78", "cves": [], "html": "<p>在 MSVC 构建中，识别名为 <code>tcl86.lib</code> 的 Tcl 库（Noah Misch）</p>", "text": "在 MSVC 构建中，识别名为 tcl86.lib 的 Tcl 库（Noah Misch）", "title": "在 MSVC 构建中，识别名为 tcl86.lib 的 Tcl 库", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "a27428de62f919a3fd88669a17270f81df9384df19e1f607912e3a19dc95b935", "section_path": ["变更"], "commit_groups": [["0328bd1ef", "4885e5c88", "71ad8000d", "9842c1b55", "bcc2c3b45", "bef96e57e"]], "identity_text": "In MSVC builds, recognize a Tcl library that is named tcl86.lib (Noah Misch)", "commit_aliases": ["0328bd1ef", "4885e5c88", "71ad8000d", "9842c1b55", "bcc2c3b45", "bef96e57e"], "source_commits": ["bcc2c3b45"], "source_entry_id": "9.6.4/changes/059", "db_id": "3f75c573c809644f4849abb7e6e49a14", "patch_ids": ["83df8fb355c2f09981c3c7f3a24cbb0c"], "statement_hash": "3e9444c9c8bf49af68d89b8883507380c88b2b428202c8575e8196a31db9c1be", "relations": [{"rule": 2, "type": "equivalent", "target": "09853f1b92e62eeb03a0337b392cd00e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3e9444c9c8bf49af68d89b8883507380c88b2b428202c8575e8196a31db9c1be"}}, {"rule": 2, "type": "equivalent", "target": "8426debdeb9bf3af83fe18cea868f692", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3e9444c9c8bf49af68d89b8883507380c88b2b428202c8575e8196a31db9c1be"}}, {"rule": 2, "type": "equivalent", "target": "c6c010717f86305f92265081e43c02b4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3e9444c9c8bf49af68d89b8883507380c88b2b428202c8575e8196a31db9c1be"}}, {"rule": 2, "type": "equivalent", "target": "d64aeca94e20b7f5038e441bcca2f806", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3e9444c9c8bf49af68d89b8883507380c88b2b428202c8575e8196a31db9c1be"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "09853f1b92e62eeb03a0337b392cd00e", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "在 MSVC 构建中，识别名为 tcl86.lib 的 Tcl 库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3e9444c9c8bf49af68d89b8883507380c88b2b428202c8575e8196a31db9c1be"}, "url": "/docs/compare/?release=9.5.8#9.5.8-09717ca3220cfa78", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "d64aeca94e20b7f5038e441bcca2f806", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "MSVC 构建中，识别名为tcl86.lib的 Tcl 库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3e9444c9c8bf49af68d89b8883507380c88b2b428202c8575e8196a31db9c1be"}, "url": "/docs/compare/?release=9.4.13#9.4.13-9c59be30dd25ecf3", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}, {"db_id": "8426debdeb9bf3af83fe18cea868f692", "kind": "equivalent", "version": "9.3.18", "label": "9.3.18", "title": "在 MSVC 构建中，识别名为 tcl86.lib 的 Tcl 库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3e9444c9c8bf49af68d89b8883507380c88b2b428202c8575e8196a31db9c1be"}, "url": "/docs/compare/?release=9.3.18#9.3.18-09717ca3220cfa78", "source_url": "/docs/release/9.3.18/#id-1.11.6.12.5"}, {"db_id": "c6c010717f86305f92265081e43c02b4", "kind": "equivalent", "version": "9.2.22", "label": "9.2.22", "title": "在 MSVC 构建中，识别名为 tcl86.lib 的 Tcl 库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3e9444c9c8bf49af68d89b8883507380c88b2b428202c8575e8196a31db9c1be"}, "url": "/docs/compare/?release=9.2.22#9.2.22-09717ca3220cfa78", "source_url": "/docs/release/9.2.22/#id-1.11.6.7.6"}]}, {"id": "9.6.4-6c6f838bc9e9da15", "cves": [], "html": "<p>在 MSVC 构建中，尊重 <code>vcregress.pl</code> 命令行上的 <code>PROVE_FLAGS</code> 设置（Andrew Dunstan）</p>", "text": "在 MSVC 构建中，尊重 vcregress.pl 命令行上的 PROVE_FLAGS 设置（Andrew Dunstan）", "title": "在 MSVC 构建中，尊重 vcregress.pl 命令行上的 PROVE_FLAGS 设置", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/9.6.4/#id-1.11.6.25.5", "source_hash": "8292c356a7232ab2eccb44a1554adb120c45de9f0a0cdafbeec15534eb60c038", "section_path": ["变更"], "commit_groups": [["054a897c4", "56b6ef893", "cb701af78", "d39d968f5"], ["11aa362c8", "3c017a545", "6b2a0b475", "93b7d9731"], ["7eb4124da", "9c3f502b4", "b4a1d69ed", "fd2487e49"]], "identity_text": "In MSVC builds, honor PROVE_FLAGS settings on vcregress.pl's command line (Andrew Dunstan)", "commit_aliases": ["054a897c4", "11aa362c8", "3c017a545", "56b6ef893", "6b2a0b475", "7eb4124da", "93b7d9731", "9c3f502b4", "b4a1d69ed", "cb701af78", "d39d968f5", "fd2487e49"], "source_commits": ["3c017a545", "b4a1d69ed", "cb701af78"], "source_entry_id": "9.6.4/changes/060", "db_id": "66e949672976314ec915b5ad58863818", "patch_ids": ["181a44c1fe59d77ef2b0d00c882566aa", "c58a289d08ed299ced79095b19c1b2bd", "d0f00ee553fd5dc23d41d569fc036faf"], "statement_hash": "d254c693e5272e812c9a281ed3a68cca6e08515eeff2ec0e43d6e4ed73d1a65e", "relations": [{"rule": 2, "type": "equivalent", "target": "9c3f871e92aceebaa87e0c7a7bc68cd0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d254c693e5272e812c9a281ed3a68cca6e08515eeff2ec0e43d6e4ed73d1a65e"}}, {"rule": 2, "type": "equivalent", "target": "c5c84a0a90686f81e6145299e2aa0aa6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d254c693e5272e812c9a281ed3a68cca6e08515eeff2ec0e43d6e4ed73d1a65e"}}], "version": "9.6.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c5c84a0a90686f81e6145299e2aa0aa6", "kind": "equivalent", "version": "9.5.8", "label": "9.5.8", "title": "在 MSVC 构建中，尊重 vcregress.pl 命令行上的 PROVE_FLAGS 设置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d254c693e5272e812c9a281ed3a68cca6e08515eeff2ec0e43d6e4ed73d1a65e"}, "url": "/docs/compare/?release=9.5.8#9.5.8-6c6f838bc9e9da15", "source_url": "/docs/release/9.5.8/#id-1.11.6.22.5"}, {"db_id": "9c3f871e92aceebaa87e0c7a7bc68cd0", "kind": "equivalent", "version": "9.4.13", "label": "9.4.13", "title": "MSVC 构建中，遵循vcregress.pl命令行上的PROVE_FLAGS设置", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d254c693e5272e812c9a281ed3a68cca6e08515eeff2ec0e43d6e4ed73d1a65e"}, "url": "/docs/compare/?release=9.4.13#9.4.13-0ece994579512c2d", "source_url": "/docs/release/9.4.13/#id-1.11.6.18.5"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 60}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 30}, {"key": "security", "label": "安全相关", "count": 3}, {"key": "performance", "label": "性能改进", "count": 1}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 26}], "total": 60, "release_count": 1, "cross_major": false, "cve_count": 4, "cves": [{"id": "CVE-2017-7547", "url": "https://www.postgresql.org/support/security/CVE-2017-7547/", "fixed": {"9.2": "9.2.22", "9.3": "9.3.18", "9.4": "9.4.13", "9.5": "9.5.8", "9.6": "9.6.4"}, "score": 8.5, "title": "进一步限制 pg_user_mappings.umoptions 的可见性，以保护存储为用户映射选项的密码", "vector": "AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H", "affected": {"9.2": "9.2", "9.3": "9.3", "9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "core server", "published": {"9.2": "2017-08-10", "9.3": "2017-08-10", "9.4": "2017-08-10", "9.5": "2017-08-10", "9.6": "2017-08-10"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2017-08-10", "fixed_version": "9.6.4"}, {"id": "CVE-2017-7486", "url": "https://www.postgresql.org/support/security/CVE-2017-7486/", "fixed": {"9.2": "9.2.21", "9.3": "9.3.17", "9.4": "9.4.12", "9.5": "9.5.7", "9.6": "9.6.3"}, "score": 8.5, "title": "进一步限制 pg_user_mappings.umoptions 的可见性，以保护存储为用户映射选项的密码", "vector": "AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H", "affected": {"9.2": "9.2", "9.3": "9.3", "9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "core server", "published": {"9.2": "2017-05-11", "9.3": "2017-05-11", "9.4": "2017-05-11", "9.5": "2017-05-11", "9.6": "2017-05-11"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2017-05-11", "fixed_version": "9.6.3"}, {"id": "CVE-2017-7546", "url": "https://www.postgresql.org/support/security/CVE-2017-7546/", "fixed": {"9.2": "9.2.22", "9.3": "9.3.18", "9.4": "9.4.13", "9.5": "9.5.8", "9.6": "9.6.4"}, "score": 8.1, "title": "禁止在所有基于密码的认证方法中使用空密码", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "affected": {"9.2": "9.2", "9.3": "9.3", "9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "core server", "published": {"9.2": "2017-08-10", "9.3": "2017-08-10", "9.4": "2017-08-10", "9.5": "2017-08-10", "9.6": "2017-08-10"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2017-08-10", "fixed_version": "9.6.4"}, {"id": "CVE-2017-7548", "url": "https://www.postgresql.org/support/security/CVE-2017-7548/", "fixed": {"9.4": "9.4.13", "9.5": "9.5.8", "9.6": "9.6.4"}, "score": 3.1, "title": "让 lo_put() 检查对目标大对象的 UPDATE 权限", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N", "affected": {"9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "core server", "published": {"9.4": "2017-11-09", "9.5": "2017-11-09", "9.6": "2017-11-09"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2017-11-09", "fixed_version": "9.6.4"}], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 60, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}