{"already_in_source_count":0,"candidate_count":6,"cross_major":false,"cve_available":true,"cve_count":0,"cves":[],"duplicate_count":0,"excluded_count":0,"exclusions":[],"from_release":null,"groups":[{"age_days":3329,"build":"9.2.23","changes_count":6,"compatibility_count":0,"content_hash":"7533de999aa368eb827614e91a6e7d55adc218d940f1898c42e7bb3ad63bbc4c","date":"2017-08-31","date_text":"2017-08-31","doc_git":"","doc_loaded_at":"2026-09-26T02:56:46.946617","entries":[{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"3f82faaf4eff73a2042216d4eac21a2c","html":"\u003cp\u003e      在 \u003ccode\u003einformation_schema\u003c/code\u003e.\u003ccode\u003etable_privileges\u003c/code\u003e\n      视图中显示外部表（Peter Eisentraut）\n     \u003c/p\u003e\u003cp\u003e      所有其他相关的 \u003ccode\u003einformation_schema\u003c/code\u003e 视图都包含外部表，只有这一个忽略了它们。\n     \u003c/p\u003e\u003cp\u003e      由于这个视图定义是由 \u003cspan\u003einitdb\u003c/span\u003e 安装的，仅升级不会修复问题。如果需要在现有安装中修复，可以以超级用户身份在\n      \u003cspan\u003epsql\u003c/span\u003e 中执行以下操作：\u003c/p\u003e\u003cpre\u003eSET search_path TO information_schema;\nCREATE OR REPLACE VIEW table_privileges AS\nSELECT CAST(u_grantor.rolname AS sql_identifier) AS grantor,\n       CAST(grantee.rolname AS sql_identifier) AS grantee,\n       CAST(current_database() AS sql_identifier) AS table_catalog,\n       CAST(nc.nspname AS sql_identifier) AS table_schema,\n       CAST(c.relname AS sql_identifier) AS table_name,\n       CAST(c.prtype AS character_data) AS privilege_type,\n       CAST(\n         CASE WHEN\n          -- object owner always has grant options\n          pg_has_role(grantee.oid, c.relowner, 'USAGE')\n          OR c.grantable\n          THEN 'YES' ELSE 'NO' END AS yes_or_no) AS is_grantable,\n       CAST(CASE WHEN c.prtype = 'SELECT' THEN 'YES' ELSE 'NO' END AS yes_or_no) AS with_hierarchy\nFROM (\n       SELECT oid, relname, relnamespace, relkind, relowner,\n              (aclexplode(coalesce(relacl, acldefault('r', relowner))).*\n       FROM pg_class ) AS c (oid, relname, relnamespace, relkind, relowner, grantor, grantee, prtype, grantable),\n     pg_namespace nc, pg_authid u_grantor,\n     (\n       SELECT oid, rolname FROM pg_authid\n       UNION ALL\n       SELECT 0::oid, 'PUBLIC'\n     ) AS grantee (oid, rolname)\nWHERE c.relnamespace = nc.oid\n      AND c.relkind IN ('r', 'v', 'f')\n      AND c.grantee = grantee.oid\n      AND c.grantor = u_grantor.oid\n      AND c.prtype IN ('INSERT', 'SELECT', 'UPDATE', 'DELETE', 'TRUNCATE', 'REFERENCES', 'TRIGGER')\n      AND (pg_has_role(u_grantor.oid, 'USAGE')\n           OR pg_has_role(grantee.oid, 'USAGE')\n           OR grantee.rolname = 'PUBLIC');\u003c/pre\u003e\u003cp\u003e\n      这必须在每个要修复的数据库中重复，包括\n      \u003ccode\u003etemplate0\u003c/code\u003e。\n     \u003c/p\u003e","id":"9.2.23-a9471aa1dc145ff0","identity_text":"Show foreign tables in information_schema.table_privileges view (Peter Eisentraut) All other relevant information_schema views include foreign tables, but this one ignored them. Since this view definition is installed by initdb, merely upgrading will not fix the problem. If you need to fix this in an existing installation, you can, as a superuser, do this in psql: SET search_path TO information_schema; CREATE OR REPLACE VIEW table_privileges AS SELECT CAST(u_grantor.rolname AS sql_identifier) AS grantor, CAST(grantee.rolname AS sql_identifier) AS grantee, CAST(current_database() AS sql_identifier) AS table_catalog, CAST(nc.nspname AS sql_identifier) AS table_schema, CAST(c.relname AS sql_identifier) AS table_name, CAST(c.prtype AS character_data) AS privilege_type, CAST( CASE WHEN -- object owner always has grant options pg_has_role(grantee.oid, c.relowner, 'USAGE') OR c.grantable THEN 'YES' ELSE 'NO' END AS yes_or_no) AS is_grantable, CAST(CASE WHEN c.prtype = 'SELECT' THEN 'YES' ELSE 'NO' END AS yes_or_no) AS with_hierarchy FROM ( SELECT oid, relname, relnamespace, relkind, relowner, (aclexplode(coalesce(relacl, acldefault('r', relowner)))).* FROM pg_class ) AS c (oid, relname, relnamespace, relkind, relowner, grantor, grantee, prtype, grantable), pg_namespace nc, pg_authid u_grantor, ( SELECT oid, rolname FROM pg_authid UNION ALL SELECT 0::oid, 'PUBLIC' ) AS grantee (oid, rolname) WHERE c.relnamespace = nc.oid AND c.relkind IN ('r', 'v', 'f') AND c.grantee = grantee.oid AND c.grantor = u_grantor.oid AND c.prtype IN ('INSERT', 'SELECT', 'UPDATE', 'DELETE', 'TRUNCATE', 'REFERENCES', 'TRIGGER') AND (pg_has_role(u_grantor.oid, 'USAGE') OR pg_has_role(grantee.oid, 'USAGE') OR grantee.rolname = 'PUBLIC'); This must be repeated in each database to be fixed, including template0.","part":"changes","patch_ids":[],"related_changes":[{"db_id":"df32761f4e98b569ae3c4a9354183c85","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd"},"kind":"equivalent","label":"9.6.5","source_url":"/docs/release/9.6.5/#id-1.11.6.24.5","title":"在 information_schema.table_privileges 视图中显示外部表","url":"/docs/compare/?release=9.6.5#9.6.5-a9471aa1dc145ff0","version":"9.6.5"},{"db_id":"41e90977ae153a8484b1cdec9c094b9d","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd"},"kind":"equivalent","label":"9.5.9","source_url":"/docs/release/9.5.9/#id-1.11.6.21.5","title":"在 information_schema.table_privileges 视图中显示外部表","url":"/docs/compare/?release=9.5.9#9.5.9-a9471aa1dc145ff0","version":"9.5.9"},{"db_id":"10a4b1a21748add5cdc22ac4594174dc","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd"},"kind":"equivalent","label":"9.4.14","source_url":"/docs/release/9.4.14/#id-1.11.6.17.5","title":"在 information_schema.table_privileges 视图中显示外部表","url":"/docs/compare/?release=9.4.14#9.4.14-a9471aa1dc145ff0","version":"9.4.14"},{"db_id":"6490008c6b679a796619737abb260ab9","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd"},"kind":"equivalent","label":"9.3.19","source_url":"/docs/release/9.3.19/#id-1.11.6.11.5","title":"在 information_schema.table_privileges 视图中显示外部表","url":"/docs/compare/?release=9.3.19#9.3.19-a9471aa1dc145ff0","version":"9.3.19"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd"},"rule":2,"target":"10a4b1a21748add5cdc22ac4594174dc","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd"},"rule":2,"target":"41e90977ae153a8484b1cdec9c094b9d","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd"},"rule":2,"target":"6490008c6b679a796619737abb260ab9","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd"},"rule":2,"target":"df32761f4e98b569ae3c4a9354183c85","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.23/changes/001","source_hash":"7b4030f07a95b428094c6f0b5be395c71c72d2d6d99a7b55a647e035c92239ac","source_url":"/docs/release/9.2.23/#id-1.11.6.6.6","statement_hash":"4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd","text":"在 information_schema.table_privileges 视图中显示外部表（Peter Eisentraut） 所有其他相关的 information_schema 视图都包含外部表，只有这一个忽略了它们。 由于这个视图定义是由 initdb 安装的，仅升级不会修复问题。如果需要在现有安装中修复，可以以超级用户身份在 psql 中执行以下操作： SET search_path TO information_schema; CREATE OR REPLACE VIEW table_privileges AS SELECT CAST(u_grantor.rolname AS sql_identifier) AS grantor, CAST(grantee.rolname AS sql_identifier) AS grantee, CAST(current_database() AS sql_identifier) AS table_catalog, CAST(nc.nspname AS sql_identifier) AS table_schema, CAST(c.relname AS sql_identifier) AS table_name, CAST(c.prtype AS character_data) AS privilege_type, CAST( CASE WHEN -- object owner always has grant options pg_has_role(grantee.oid, c.relowner, 'USAGE') OR c.grantable THEN 'YES' ELSE 'NO' END AS yes_or_no) AS is_grantable, CAST(CASE WHEN c.prtype = 'SELECT' THEN 'YES' ELSE 'NO' END AS yes_or_no) AS with_hierarchy FROM ( SELECT oid, relname, relnamespace, relkind, relowner, (aclexplode(coalesce(relacl, acldefault('r', relowner))).* FROM pg_class ) AS c (oid, relname, relnamespace, relkind, relowner, grantor, grantee, prtype, grantable), pg_namespace nc, pg_authid u_grantor, ( SELECT oid, rolname FROM pg_authid UNION ALL SELECT 0::oid, 'PUBLIC' ) AS grantee (oid, rolname) WHERE c.relnamespace = nc.oid AND c.relkind IN ('r', 'v', 'f') AND c.grantee = grantee.oid AND c.grantor = u_grantor.oid AND c.prtype IN ('INSERT', 'SELECT', 'UPDATE', 'DELETE', 'TRUNCATE', 'REFERENCES', 'TRIGGER') AND (pg_has_role(u_grantor.oid, 'USAGE') OR pg_has_role(grantee.oid, 'USAGE') OR grantee.rolname = 'PUBLIC'); 这必须在每个要修复的数据库中重复，包括 template0。","title":"在 information_schema.table_privileges 视图中显示外部表","variants":[],"version":"9.2.23"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"f9959ffe6fe7709a79e620b35064a27d","html":"\u003cp\u003e      清理尝试对失败事务执行 \u003ccode\u003eROLLBACK\u003c/code\u003e 时发生致命退出（例如因收到 \u003cspan\u003eSIGTERM\u003c/span\u003e）的处理（Tom Lane）\n     \u003c/p\u003e\u003cp\u003e      这种情况可能导致断言失败。在生产构建中退出仍会发生，但会记录一条关于\u003cspan\u003e“\u003cspan\u003ecannot drop active portal\u003c/span\u003e”\u003c/span\u003e的意外消息。\n     \u003c/p\u003e","id":"9.2.23-2c80f774f076c8fd","identity_text":"Clean up handling of a fatal exit (e.g., due to receipt of SIGTERM) that occurs while trying to execute a ROLLBACK of a failed transaction (Tom Lane) This situation could result in an assertion failure. In production builds, the exit would still occur, but it would log an unexpected message about cannot drop active portal.","part":"changes","patch_ids":[],"related_changes":[{"db_id":"ec8e803c943e0b1082d3dd91507845c3","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3"},"kind":"equivalent","label":"9.6.5","source_url":"/docs/release/9.6.5/#id-1.11.6.24.5","title":"清理尝试对失败事务执行 ROLLBACK 时发生致命退出（例如因收到 SIGTERM）的处理","url":"/docs/compare/?release=9.6.5#9.6.5-2c80f774f076c8fd","version":"9.6.5"},{"db_id":"ae36cc2c0a2f6aa05a29af6344b41317","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3"},"kind":"equivalent","label":"9.5.9","source_url":"/docs/release/9.5.9/#id-1.11.6.21.5","title":"清理尝试对失败事务执行 ROLLBACK 时发生致命退出（例如因收到 SIGTERM）的处理","url":"/docs/compare/?release=9.5.9#9.5.9-2c80f774f076c8fd","version":"9.5.9"},{"db_id":"b72e2b8199e9f5e2f2549b1725d05d0b","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3"},"kind":"equivalent","label":"9.4.14","source_url":"/docs/release/9.4.14/#id-1.11.6.17.5","title":"清理尝试对失败事务执行 ROLLBACK 时发生致命退出（例如因收到 SIGTERM）的处理","url":"/docs/compare/?release=9.4.14#9.4.14-2c80f774f076c8fd","version":"9.4.14"},{"db_id":"0dae3f449dfb816df1df5fde5f526d0f","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3"},"kind":"equivalent","label":"9.3.19","source_url":"/docs/release/9.3.19/#id-1.11.6.11.5","title":"清理尝试对失败事务执行 ROLLBACK 时发生致命退出（例如因收到 SIGTERM）的处理","url":"/docs/compare/?release=9.3.19#9.3.19-2c80f774f076c8fd","version":"9.3.19"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3"},"rule":2,"target":"0dae3f449dfb816df1df5fde5f526d0f","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3"},"rule":2,"target":"ae36cc2c0a2f6aa05a29af6344b41317","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3"},"rule":2,"target":"b72e2b8199e9f5e2f2549b1725d05d0b","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3"},"rule":2,"target":"ec8e803c943e0b1082d3dd91507845c3","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.23/changes/002","source_hash":"d5df774b4eb63945a519484f4385c5de6b26a57ae89d9ec60c00acfad673444c","source_url":"/docs/release/9.2.23/#id-1.11.6.6.6","statement_hash":"e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3","text":"清理尝试对失败事务执行 ROLLBACK 时发生致命退出（例如因收到 SIGTERM）的处理（Tom Lane） 这种情况可能导致断言失败。在生产构建中退出仍会发生，但会记录一条关于“cannot drop active portal”的意外消息。","title":"清理尝试对失败事务执行 ROLLBACK 时发生致命退出（例如因收到 SIGTERM）的处理","variants":[],"version":"9.2.23"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"2cdb4a28a33a0e8815255ea6e190bbd9","html":"\u003cp\u003e      移除致命退出期间可能触发的断言（Tom Lane）\n     \u003c/p\u003e","id":"9.2.23-b5e135b3d4add397","identity_text":"Remove assertion that could trigger during a fatal exit (Tom Lane)","part":"changes","patch_ids":[],"related_changes":[{"db_id":"88259e18f9ffa0f282e9828e4a46b4a0","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746"},"kind":"equivalent","label":"9.6.5","source_url":"/docs/release/9.6.5/#id-1.11.6.24.5","title":"移除致命退出期间可能触发的断言","url":"/docs/compare/?release=9.6.5#9.6.5-b5e135b3d4add397","version":"9.6.5"},{"db_id":"b49d786050cef1b1d115cc3aa5cd1454","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746"},"kind":"equivalent","label":"9.5.9","source_url":"/docs/release/9.5.9/#id-1.11.6.21.5","title":"移除致命退出期间可能触发的断言","url":"/docs/compare/?release=9.5.9#9.5.9-b5e135b3d4add397","version":"9.5.9"},{"db_id":"84ef0ccd288d161ff09bbdcb5dffb3aa","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746"},"kind":"equivalent","label":"9.4.14","source_url":"/docs/release/9.4.14/#id-1.11.6.17.5","title":"移除在致命退出期间可能触发的断言","url":"/docs/compare/?release=9.4.14#9.4.14-b12d68766d941918","version":"9.4.14"},{"db_id":"5cd648610ff81e672a3935e98852c494","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746"},"kind":"equivalent","label":"9.3.19","source_url":"/docs/release/9.3.19/#id-1.11.6.11.5","title":"移除致命退出期间可能触发的断言","url":"/docs/compare/?release=9.3.19#9.3.19-b5e135b3d4add397","version":"9.3.19"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746"},"rule":2,"target":"5cd648610ff81e672a3935e98852c494","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746"},"rule":2,"target":"84ef0ccd288d161ff09bbdcb5dffb3aa","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746"},"rule":2,"target":"88259e18f9ffa0f282e9828e4a46b4a0","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746"},"rule":2,"target":"b49d786050cef1b1d115cc3aa5cd1454","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.23/changes/003","source_hash":"b70358ccba805aaad92a8acf418fca513f7bdd15dbe6e6b12e115de8102e95d1","source_url":"/docs/release/9.2.23/#id-1.11.6.6.6","statement_hash":"8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746","text":"移除致命退出期间可能触发的断言（Tom Lane）","title":"移除致命退出期间可能触发的断言","variants":[],"version":"9.2.23"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"e9c971ac5fd2b5a201825b0c71b7aa87","html":"\u003cp\u003e      正确识别范围类型或基于被搜索复合类型或域类型的域类型之上的列（Tom Lane）\n     \u003c/p\u003e\u003cp\u003e      某些更改复合类型或域类型定义的 \u003ccode\u003eALTER\u003c/code\u003e 命令本应在该类型有存储值时失败，因为它们缺少更新或检查这类值所需的基础设施。此前这些检查可能遗漏包裹在范围类型或子域中的相关值，可能允许数据度变得不一致。\n     \u003c/p\u003e","id":"9.2.23-8a8b1213bb73a969","identity_text":"Correctly identify columns that are of a range type or domain type over a composite type or domain type being searched for (Tom Lane) Certain ALTER commands that change the definition of a composite type or domain type are supposed to fail if there are any stored values of that type in the database, because they lack the infrastructure needed to update or check such values. Previously, these checks could miss relevant values that are wrapped inside range types or sub-domains, possibly allowing the database to become inconsistent.","part":"changes","patch_ids":[],"related_changes":[{"db_id":"7bf0fd5e8efbe5ef59a9cb0f0755f90c","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761"},"kind":"equivalent","label":"9.6.5","source_url":"/docs/release/9.6.5/#id-1.11.6.24.5","title":"正确识别范围类型或基于被搜索复合类型或域类型的域类型之上的列","url":"/docs/compare/?release=9.6.5#9.6.5-8a8b1213bb73a969","version":"9.6.5"},{"db_id":"73b62edc7cc658789a1495105b92e2ad","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761"},"kind":"equivalent","label":"9.5.9","source_url":"/docs/release/9.5.9/#id-1.11.6.21.5","title":"正确识别范围类型或基于被搜索复合类型或域类型的域类型之上的列","url":"/docs/compare/?release=9.5.9#9.5.9-8a8b1213bb73a969","version":"9.5.9"},{"db_id":"74a0658a15a01d0c31a8ba50bc811e75","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761"},"kind":"equivalent","label":"9.4.14","source_url":"/docs/release/9.4.14/#id-1.11.6.17.5","title":"正确识别范围类型或基于被搜索复合类型或域类型的域类型之上的列","url":"/docs/compare/?release=9.4.14#9.4.14-8a8b1213bb73a969","version":"9.4.14"},{"db_id":"71abe7ea8efc33852b4ca5c481f21278","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761"},"kind":"equivalent","label":"9.3.19","source_url":"/docs/release/9.3.19/#id-1.11.6.11.5","title":"正确识别范围类型或基于被搜索复合类型或域类型的域类型之上的列","url":"/docs/compare/?release=9.3.19#9.3.19-8a8b1213bb73a969","version":"9.3.19"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761"},"rule":2,"target":"71abe7ea8efc33852b4ca5c481f21278","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761"},"rule":2,"target":"73b62edc7cc658789a1495105b92e2ad","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761"},"rule":2,"target":"74a0658a15a01d0c31a8ba50bc811e75","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761"},"rule":2,"target":"7bf0fd5e8efbe5ef59a9cb0f0755f90c","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.23/changes/004","source_hash":"68cb04192ccd10ed71b705479def628535e76cb647a7ab57223e684259620f52","source_url":"/docs/release/9.2.23/#id-1.11.6.6.6","statement_hash":"22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761","text":"正确识别范围类型或基于被搜索复合类型或域类型的域类型之上的列（Tom Lane） 某些更改复合类型或域类型定义的 ALTER 命令本应在该类型有存储值时失败，因为它们缺少更新或检查这类值所需的基础设施。此前这些检查可能遗漏包裹在范围类型或子域中的相关值，可能允许数据度变得不一致。","title":"正确识别范围类型或基于被搜索复合类型或域类型的域类型之上的列","variants":[],"version":"9.2.23"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"1c903c2b45dfeb3c4c69edb715182ffc","html":"\u003cp\u003e      更改 \u003cspan\u003eecpg\u003c/span\u003e 的解析器允许不带 C 变量的\n      \u003ccode\u003eRETURNING\u003c/code\u003e 子句（Michael Meskes）\n     \u003c/p\u003e\u003cp\u003e      这允许 \u003cspan\u003eecpg\u003c/span\u003e 程序包含在内部使用\n      \u003ccode\u003eRETURNING\u003c/code\u003e（例如在 CTE 内）而不是用它定义返回给客户端的值的 SQL 构造。\n     \u003c/p\u003e","id":"9.2.23-a2c9ce6a936c154a","identity_text":"Change ecpg's parser to allow RETURNING clauses without attached C variables (Michael Meskes) This allows ecpg programs to contain SQL constructs that use RETURNING internally (for example, inside a CTE) rather than using it to define values to be returned to the client.","part":"changes","patch_ids":[],"related_changes":[{"db_id":"cff3c4860563f6b8bc8a0dd39b1e7d98","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348"},"kind":"equivalent","label":"9.6.5","source_url":"/docs/release/9.6.5/#id-1.11.6.24.5","title":"更改 ecpg 的解析器允许不带 C 变量的 RETURNING 子句","url":"/docs/compare/?release=9.6.5#9.6.5-a2c9ce6a936c154a","version":"9.6.5"},{"db_id":"dcfd6b1086dc12dab1f710cc7cc1e6cf","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348"},"kind":"equivalent","label":"9.5.9","source_url":"/docs/release/9.5.9/#id-1.11.6.21.5","title":"更改 ecpg 的解析器允许不带 C 变量的 RETURNING 子句","url":"/docs/compare/?release=9.5.9#9.5.9-a2c9ce6a936c154a","version":"9.5.9"},{"db_id":"8b053a8e0c87c6b9951b5c4833080e89","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348"},"kind":"equivalent","label":"9.4.14","source_url":"/docs/release/9.4.14/#id-1.11.6.17.5","title":"更改 ecpg 的解析器允许不带 C 变量的 RETURNING 子句","url":"/docs/compare/?release=9.4.14#9.4.14-a2c9ce6a936c154a","version":"9.4.14"},{"db_id":"397743f1137bc45382759daafaf3e467","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348"},"kind":"equivalent","label":"9.3.19","source_url":"/docs/release/9.3.19/#id-1.11.6.11.5","title":"更改 ecpg 的解析器允许不带 C 变量的 RETURNING 子句","url":"/docs/compare/?release=9.3.19#9.3.19-a2c9ce6a936c154a","version":"9.3.19"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348"},"rule":2,"target":"397743f1137bc45382759daafaf3e467","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348"},"rule":2,"target":"8b053a8e0c87c6b9951b5c4833080e89","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348"},"rule":2,"target":"cff3c4860563f6b8bc8a0dd39b1e7d98","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348"},"rule":2,"target":"dcfd6b1086dc12dab1f710cc7cc1e6cf","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.23/changes/005","source_hash":"9038445fd611f6a759ecdf14589ab9dd055e382b685bba52f3852dfff93584c0","source_url":"/docs/release/9.2.23/#id-1.11.6.6.6","statement_hash":"d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348","text":"更改 ecpg 的解析器允许不带 C 变量的 RETURNING 子句（Michael Meskes） 这允许 ecpg 程序包含在内部使用 RETURNING（例如在 CTE 内）而不是用它定义返回给客户端的值的 SQL 构造。","title":"更改 ecpg 的解析器允许不带 C 变量的 RETURNING 子句","variants":[],"version":"9.2.23"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":[],"commit_groups":[],"commits":[],"cves":[],"db_id":"f490072174f6dab4a7f5d5d01709bc8c","html":"\u003cp\u003e      改进 Windows 上 PL/Perl 编译器标志的选择（Tom Lane）\n     \u003c/p\u003e\u003cp\u003e      此修复避免了因对 \u003ccode\u003etime_t\u003c/code\u003e 值宽度的假定不一致而可能的\n      PL/Perl 崩溃。扩展开发者可能看到的一个副作用是\n      \u003ccode\u003e_USE_32BIT_TIME_T\u003c/code\u003e 不再在\n      \u003cspan\u003ePostgreSQL\u003c/span\u003e Windows 构建中全局定义。这预计不会引起问题，因为 \u003ccode\u003etime_t\u003c/code\u003e 类型没有用于任何\n      \u003cspan\u003ePostgreSQL\u003c/span\u003e API 定义。\n     \u003c/p\u003e","id":"9.2.23-59c8a1aebc0aeb07","identity_text":"Improve selection of compiler flags for PL/Perl on Windows (Tom Lane) This fix avoids possible crashes of PL/Perl due to inconsistent assumptions about the width of time_t values. A side-effect that may be visible to extension developers is that _USE_32BIT_TIME_T is no longer defined globally in PostgreSQL Windows builds. This is not expected to cause problems, because type time_t is not used in any PostgreSQL API definitions.","part":"changes","patch_ids":[],"related_changes":[{"db_id":"174ebed95fdf320d91b3db9f71a9265a","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66"},"kind":"equivalent","label":"9.6.5","source_url":"/docs/release/9.6.5/#id-1.11.6.24.5","title":"改进 Windows 上 PL/Perl 编译器标志的选择","url":"/docs/compare/?release=9.6.5#9.6.5-59c8a1aebc0aeb07","version":"9.6.5"},{"db_id":"ff5f500a1e1a883ae5db2f02f35c34a3","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66"},"kind":"equivalent","label":"9.5.9","source_url":"/docs/release/9.5.9/#id-1.11.6.21.5","title":"改进 Windows 上 PL/Perl 编译器标志的选择","url":"/docs/compare/?release=9.5.9#9.5.9-59c8a1aebc0aeb07","version":"9.5.9"},{"db_id":"fc4dc1c8fda86f29580edb9411bbad9a","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66"},"kind":"equivalent","label":"9.4.14","source_url":"/docs/release/9.4.14/#id-1.11.6.17.5","title":"改进 Windows 上 PL/Perl 编译器标志的选择","url":"/docs/compare/?release=9.4.14#9.4.14-59c8a1aebc0aeb07","version":"9.4.14"},{"db_id":"a8ad0fb10f04704616588a82af98dbff","evidence":{"patch_ids":[],"same_day":true,"statement_hash":"59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66"},"kind":"equivalent","label":"9.3.19","source_url":"/docs/release/9.3.19/#id-1.11.6.11.5","title":"改进 Windows 上 PL/Perl 编译器标志的选择","url":"/docs/compare/?release=9.3.19#9.3.19-59c8a1aebc0aeb07","version":"9.3.19"}],"relations":[{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66"},"rule":2,"target":"174ebed95fdf320d91b3db9f71a9265a","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66"},"rule":2,"target":"a8ad0fb10f04704616588a82af98dbff","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66"},"rule":2,"target":"fc4dc1c8fda86f29580edb9411bbad9a","type":"equivalent"},{"evidence":{"patch_ids":[],"same_day":true,"statement_hash":"59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66"},"rule":2,"target":"ff5f500a1e1a883ae5db2f02f35c34a3","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":[],"source_entry_id":"9.2.23/changes/006","source_hash":"5522284459af55ecc5bd039bfa2c5bffca555438b4b966714cfd04cf34cb26c5","source_url":"/docs/release/9.2.23/#id-1.11.6.6.6","statement_hash":"59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66","text":"改进 Windows 上 PL/Perl 编译器标志的选择（Tom Lane） 此修复避免了因对 time_t 值宽度的假定不一致而可能的 PL/Perl 崩溃。扩展开发者可能看到的一个副作用是 _USE_32BIT_TIME_T 不再在 PostgreSQL Windows 构建中全局定义。这预计不会引起问题，因为 time_t 类型没有用于任何 PostgreSQL API 定义。","title":"改进 Windows 上 PL/Perl 编译器标志的选择","variants":[],"version":"9.2.23"}],"entry_count":6,"eol":"2017-11-09","eol_date":"2017-11-09","label":"9.2.23","major":"9.2","manual":"9.2","manual_build":"9.2.24","manual_url":"/docs/9.2/release-9-2-23.html","migration_html":"\u003cp\u003e    对于运行 9.2.X 的用户，不需要进行转储/恢复。\u003c/p\u003e\u003cp\u003e    不过，如果你是从早于 9.2.22 的版本升级，请参见\u003ca href=\"/docs/9.2/release-9-2-22.html\" title=\"E.3. 版本 9.2.22\"\u003e第 E.3 节\u003c/a\u003e。\u003c/p\u003e","minor":23,"placeholder":false,"source_as_of":"","source_url":"/docs/release/9.2.23/","status":"stable","status_label":"Historical","support_days":-3259,"supported":false,"version":"9.2.23"}],"mode":"release","release_count":1,"remaining_cves":[],"security_as_of":"2026-09-26","security_regressions":[],"source_as_of":"2026-09-26","stats":[{"count":6,"key":"all","label":"All changes"},{"count":0,"key":"feature","label":"Features"},{"count":0,"key":"bugfix","label":"Bug fixes"},{"count":0,"key":"security","label":"Security"},{"count":0,"key":"performance","label":"Performance"},{"count":0,"key":"compatibility","label":"Compatibility"},{"count":6,"key":"improvement","label":"Improvements"}],"to_release":{"age_days":3329,"build":"9.2.23","changes_count":6,"compatibility_count":0,"content_hash":"7533de999aa368eb827614e91a6e7d55adc218d940f1898c42e7bb3ad63bbc4c","date":"2017-08-31","date_text":"2017-08-31","doc_git":"","doc_loaded_at":"2026-09-26T02:56:46.946617","entry_count":6,"eol":"2017-11-09","eol_date":"2017-11-09","label":"9.2.23","major":"9.2","manual":"9.2","manual_build":"9.2.24","manual_url":"/docs/9.2/release-9-2-23.html","migration_html":"\u003cp\u003e    对于运行 9.2.X 的用户，不需要进行转储/恢复。\u003c/p\u003e\u003cp\u003e    不过，如果你是从早于 9.2.22 的版本升级，请参见\u003ca href=\"/docs/9.2/release-9-2-22.html\" title=\"E.3. 版本 9.2.22\"\u003e第 E.3 节\u003c/a\u003e。\u003c/p\u003e","minor":23,"placeholder":false,"source_as_of":"","source_url":"/docs/release/9.2.23/","status":"stable","status_label":"Historical","support_days":-3259,"supported":false,"version":"9.2.23"},"total":6,"warnings":[]}
