{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2017-08-31", "build": "9.4.14", "major": "9.4", "minor": 14, "manual": "9.4", "status": "stable", "doc_git": "", "version": "9.4.14", "eol_date": "2020-02-13", "date_text": "2017-08-31", "supported": false, "manual_url": "/docs/9.4/release-9-4-14.html", "source_url": "/docs/release/9.4.14/", "entry_count": 8, "placeholder": false, "content_hash": "cbb89b724e8e35301d872af626df3ccab064defbbfc833478ff905fe4308d6c9", "manual_build": "9.4.26", "source_as_of": "", "changes_count": 8, "doc_loaded_at": "2026-09-25T02:22:44.760693", "migration_html": "<p>A dump/restore is not required for those running 9.4.X.</p>\n<p>However, if you are upgrading from a version earlier than 9.4.13, see <a href=\"/docs/9.4/release-9-4-13.html\">Section E.14</a>.</p>", "compatibility_count": 0, "label": "9.4.14", "status_label": "Historical", "eol": "2020-02-13", "age_days": 3316, "support_days": -2420}, "groups": [{"date": "2017-08-31", "build": "9.4.14", "major": "9.4", "minor": 14, "manual": "9.4", "status": "stable", "doc_git": "", "version": "9.4.14", "eol_date": "2020-02-13", "date_text": "2017-08-31", "supported": false, "manual_url": "/docs/9.4/release-9-4-14.html", "source_url": "/docs/release/9.4.14/", "entry_count": 8, "placeholder": false, "content_hash": "cbb89b724e8e35301d872af626df3ccab064defbbfc833478ff905fe4308d6c9", "manual_build": "9.4.26", "source_as_of": "", "changes_count": 8, "doc_loaded_at": "2026-09-25T02:22:44.760693", "migration_html": "<p>A dump/restore is not required for those running 9.4.X.</p>\n<p>However, if you are upgrading from a version earlier than 9.4.13, see <a href=\"/docs/9.4/release-9-4-13.html\">Section E.14</a>.</p>", "compatibility_count": 0, "label": "9.4.14", "status_label": "Historical", "eol": "2020-02-13", "age_days": 3316, "support_days": -2420, "entries": [{"id": "9.4.14-1d9635bc3bcd88b3", "cves": [], "html": "<p>Fix failure of walsender processes to respond to shutdown signals (Marco Nenciarini)</p>\n<p>A missed flag update resulted in walsenders continuing to run as long as they had a standby server connected, preventing primary-server shutdown unless immediate shutdown mode is used.</p>", "text": "Fix failure of walsender processes to respond to shutdown signals (Marco Nenciarini) A missed flag update resulted in walsenders continuing to run as long as they had a standby server connected, preventing primary-server shutdown unless immediate shutdown mode is used.", "title": "Fix failure of walsender processes to respond to shutdown signals", "commits": [], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/9.4.14/#AEN121403", "source_hash": "13a8d72b013fdf078964e46daa8cbafbf1a956626ea91d2a9114b172eacd4fbb", "section_path": ["Changes"], "commit_groups": [["b51c8efc6"]], "identity_text": "Fix failure of walsender processes to respond to shutdown signals (Marco Nenciarini) A missed flag update resulted in walsenders continuing to run as long as they had a standby server connected, preventing primary-server shutdown unless immediate shutdown mode is used.", "commit_aliases": ["b51c8efc6"], "source_commits": ["b51c8efc6"], "source_entry_id": "9.4.14/changes/001", "db_id": "50c018f0f06599db73f6aea72635772c", "patch_ids": ["b363e2af6f63546655d871acec5804b1"], "statement_hash": "d1f3e25ccb16e7e3e2d3abfd57a912998eb39cf163ac1ffcc71b395d7b005e6c", "relations": [], "version": "9.4.14", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.4.14-d2a8f38c1ccaa2fa", "cves": [], "html": "<p>Show foreign tables in information_schema.table_privileges view (Peter Eisentraut)</p>\n<p>All other relevant information_schema views include foreign tables, but this one ignored them.</p>\n<p>Since this view definition is installed by <span>initdb</span>, 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 <span>psql</span>:</p>\n<pre>SET search_path TO information_schema;\nCREATE OR REPLACE VIEW table_privileges AS\n    SELECT 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\n\n    FROM (\n            SELECT oid, relname, relnamespace, relkind, relowner, (aclexplode(coalesce(relacl, acldefault('r', relowner)))).* FROM pg_class\n         ) AS c (oid, relname, relnamespace, relkind, relowner, grantor, grantee, prtype, grantable),\n         pg_namespace nc,\n         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)\n\n    WHERE 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');\n</pre>\n<p>This must be repeated in each database to be fixed, including template0.</p>", "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.", "title": "Show foreign tables in information_schema.table_privileges view", "commits": [], "section": "Changes", "category": "improvement", "source_url": "/docs/release/9.4.14/#AEN121403", "source_hash": "7b4030f07a95b428094c6f0b5be395c71c72d2d6d99a7b55a647e035c92239ac", "section_path": ["Changes"], "commit_groups": [], "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.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.14/changes/002", "db_id": "10a4b1a21748add5cdc22ac4594174dc", "patch_ids": [], "statement_hash": "4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd", "relations": [{"rule": 2, "type": "equivalent", "target": "3f82faaf4eff73a2042216d4eac21a2c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd"}}, {"rule": 2, "type": "equivalent", "target": "41e90977ae153a8484b1cdec9c094b9d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd"}}, {"rule": 2, "type": "equivalent", "target": "6490008c6b679a796619737abb260ab9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd"}}, {"rule": 2, "type": "equivalent", "target": "df32761f4e98b569ae3c4a9354183c85", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd"}}], "version": "9.4.14", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "df32761f4e98b569ae3c4a9354183c85", "kind": "equivalent", "version": "9.6.5", "label": "9.6.5", "title": "Show foreign tables in information_schema.table_privileges view", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd"}, "url": "/docs/compare/?release=9.6.5#9.6.5-d2a8f38c1ccaa2fa", "source_url": "/docs/release/9.6.5/#AEN135113"}, {"db_id": "41e90977ae153a8484b1cdec9c094b9d", "kind": "equivalent", "version": "9.5.9", "label": "9.5.9", "title": "Show foreign tables in information_schema.table_privileges view", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd"}, "url": "/docs/compare/?release=9.5.9#9.5.9-d2a8f38c1ccaa2fa", "source_url": "/docs/release/9.5.9/#AEN129750"}, {"db_id": "6490008c6b679a796619737abb260ab9", "kind": "equivalent", "version": "9.3.19", "label": "9.3.19", "title": "Show foreign tables in information_schema.table_privileges view", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd"}, "url": "/docs/compare/?release=9.3.19#9.3.19-d2a8f38c1ccaa2fa", "source_url": "/docs/release/9.3.19/#AEN115830"}, {"db_id": "3f82faaf4eff73a2042216d4eac21a2c", "kind": "equivalent", "version": "9.2.23", "label": "9.2.23", "title": "Show foreign tables in information_schema.table_privileges view", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4c87ab45b537024d4b3d1e310579afba2648f3fcca11e82e3fd65eabe60da1cd"}, "url": "/docs/compare/?release=9.2.23#9.2.23-d2a8f38c1ccaa2fa", "source_url": "/docs/release/9.2.23/#AEN110893"}]}, {"id": "9.4.14-291e58c35c0a3e87", "cves": [], "html": "<p>Clean up handling of a fatal exit (e.g., due to receipt of <span>SIGTERM</span>) that occurs while trying to execute a ROLLBACK of a failed transaction (Tom Lane)</p>\n<p>This situation could result in an assertion failure. In production builds, the exit would still occur, but it would log an unexpected message about <span>\"cannot drop active portal\"</span>.</p>", "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\".", "title": "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", "commits": [], "section": "Changes", "category": "improvement", "source_url": "/docs/release/9.4.14/#AEN121403", "source_hash": "d5df774b4eb63945a519484f4385c5de6b26a57ae89d9ec60c00acfad673444c", "section_path": ["Changes"], "commit_groups": [], "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.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.14/changes/003", "db_id": "b72e2b8199e9f5e2f2549b1725d05d0b", "patch_ids": [], "statement_hash": "e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3", "relations": [{"rule": 2, "type": "equivalent", "target": "0dae3f449dfb816df1df5fde5f526d0f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3"}}, {"rule": 2, "type": "equivalent", "target": "ae36cc2c0a2f6aa05a29af6344b41317", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3"}}, {"rule": 2, "type": "equivalent", "target": "ec8e803c943e0b1082d3dd91507845c3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3"}}, {"rule": 2, "type": "equivalent", "target": "f9959ffe6fe7709a79e620b35064a27d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3"}}], "version": "9.4.14", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "ec8e803c943e0b1082d3dd91507845c3", "kind": "equivalent", "version": "9.6.5", "label": "9.6.5", "title": "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", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3"}, "url": "/docs/compare/?release=9.6.5#9.6.5-291e58c35c0a3e87", "source_url": "/docs/release/9.6.5/#AEN135113"}, {"db_id": "ae36cc2c0a2f6aa05a29af6344b41317", "kind": "equivalent", "version": "9.5.9", "label": "9.5.9", "title": "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", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3"}, "url": "/docs/compare/?release=9.5.9#9.5.9-291e58c35c0a3e87", "source_url": "/docs/release/9.5.9/#AEN129750"}, {"db_id": "0dae3f449dfb816df1df5fde5f526d0f", "kind": "equivalent", "version": "9.3.19", "label": "9.3.19", "title": "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", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3"}, "url": "/docs/compare/?release=9.3.19#9.3.19-291e58c35c0a3e87", "source_url": "/docs/release/9.3.19/#AEN115830"}, {"db_id": "f9959ffe6fe7709a79e620b35064a27d", "kind": "equivalent", "version": "9.2.23", "label": "9.2.23", "title": "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", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e4594aaac71679b501975fc7f1c808003de70a354e08f6f55548a466442e25c3"}, "url": "/docs/compare/?release=9.2.23#9.2.23-291e58c35c0a3e87", "source_url": "/docs/release/9.2.23/#AEN110893"}]}, {"id": "9.4.14-7bd024068e27e0fb", "cves": [], "html": "<p>Remove assertion that could trigger during a fatal exit (Tom Lane)</p>", "text": "Remove assertion that could trigger during a fatal exit (Tom Lane)", "title": "Remove assertion that could trigger during a fatal exit", "commits": [], "section": "Changes", "category": "improvement", "source_url": "/docs/release/9.4.14/#AEN121403", "source_hash": "b70358ccba805aaad92a8acf418fca513f7bdd15dbe6e6b12e115de8102e95d1", "section_path": ["Changes"], "commit_groups": [], "identity_text": "Remove assertion that could trigger during a fatal exit (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.14/changes/004", "db_id": "84ef0ccd288d161ff09bbdcb5dffb3aa", "patch_ids": [], "statement_hash": "8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746", "relations": [{"rule": 2, "type": "equivalent", "target": "2cdb4a28a33a0e8815255ea6e190bbd9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746"}}, {"rule": 2, "type": "equivalent", "target": "5cd648610ff81e672a3935e98852c494", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746"}}, {"rule": 2, "type": "equivalent", "target": "88259e18f9ffa0f282e9828e4a46b4a0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746"}}, {"rule": 2, "type": "equivalent", "target": "b49d786050cef1b1d115cc3aa5cd1454", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746"}}], "version": "9.4.14", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "88259e18f9ffa0f282e9828e4a46b4a0", "kind": "equivalent", "version": "9.6.5", "label": "9.6.5", "title": "Remove assertion that could trigger during a fatal exit", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746"}, "url": "/docs/compare/?release=9.6.5#9.6.5-7bd024068e27e0fb", "source_url": "/docs/release/9.6.5/#AEN135113"}, {"db_id": "b49d786050cef1b1d115cc3aa5cd1454", "kind": "equivalent", "version": "9.5.9", "label": "9.5.9", "title": "Remove assertion that could trigger during a fatal exit", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746"}, "url": "/docs/compare/?release=9.5.9#9.5.9-7bd024068e27e0fb", "source_url": "/docs/release/9.5.9/#AEN129750"}, {"db_id": "5cd648610ff81e672a3935e98852c494", "kind": "equivalent", "version": "9.3.19", "label": "9.3.19", "title": "Remove assertion that could trigger during a fatal exit", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746"}, "url": "/docs/compare/?release=9.3.19#9.3.19-7bd024068e27e0fb", "source_url": "/docs/release/9.3.19/#AEN115830"}, {"db_id": "2cdb4a28a33a0e8815255ea6e190bbd9", "kind": "equivalent", "version": "9.2.23", "label": "9.2.23", "title": "Remove assertion that could trigger during a fatal exit", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "8f2814680778d3967a405fba989a851253ca0d3c721fa7bfff0f245c9c2d9746"}, "url": "/docs/compare/?release=9.2.23#9.2.23-7bd024068e27e0fb", "source_url": "/docs/release/9.2.23/#AEN110893"}]}, {"id": "9.4.14-e78d2741a7e38b54", "cves": [], "html": "<p>Correctly identify columns that are of a range type or domain type over a composite type or domain type being searched for (Tom Lane)</p>\n<p>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.</p>", "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.", "title": "Correctly identify columns that are of a range type or domain type over a composite type or domain type being searched for", "commits": [], "section": "Changes", "category": "improvement", "source_url": "/docs/release/9.4.14/#AEN121403", "source_hash": "68cb04192ccd10ed71b705479def628535e76cb647a7ab57223e684259620f52", "section_path": ["Changes"], "commit_groups": [], "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.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.14/changes/005", "db_id": "74a0658a15a01d0c31a8ba50bc811e75", "patch_ids": [], "statement_hash": "22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761", "relations": [{"rule": 2, "type": "equivalent", "target": "71abe7ea8efc33852b4ca5c481f21278", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761"}}, {"rule": 2, "type": "equivalent", "target": "73b62edc7cc658789a1495105b92e2ad", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761"}}, {"rule": 2, "type": "equivalent", "target": "7bf0fd5e8efbe5ef59a9cb0f0755f90c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761"}}, {"rule": 2, "type": "equivalent", "target": "e9c971ac5fd2b5a201825b0c71b7aa87", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761"}}], "version": "9.4.14", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "7bf0fd5e8efbe5ef59a9cb0f0755f90c", "kind": "equivalent", "version": "9.6.5", "label": "9.6.5", "title": "Correctly identify columns that are of a range type or domain type over a composite type or domain type being searched for", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761"}, "url": "/docs/compare/?release=9.6.5#9.6.5-e78d2741a7e38b54", "source_url": "/docs/release/9.6.5/#AEN135113"}, {"db_id": "73b62edc7cc658789a1495105b92e2ad", "kind": "equivalent", "version": "9.5.9", "label": "9.5.9", "title": "Correctly identify columns that are of a range type or domain type over a composite type or domain type being searched for", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761"}, "url": "/docs/compare/?release=9.5.9#9.5.9-e78d2741a7e38b54", "source_url": "/docs/release/9.5.9/#AEN129750"}, {"db_id": "71abe7ea8efc33852b4ca5c481f21278", "kind": "equivalent", "version": "9.3.19", "label": "9.3.19", "title": "Correctly identify columns that are of a range type or domain type over a composite type or domain type being searched for", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761"}, "url": "/docs/compare/?release=9.3.19#9.3.19-e78d2741a7e38b54", "source_url": "/docs/release/9.3.19/#AEN115830"}, {"db_id": "e9c971ac5fd2b5a201825b0c71b7aa87", "kind": "equivalent", "version": "9.2.23", "label": "9.2.23", "title": "Correctly identify columns that are of a range type or domain type over a composite type or domain type being searched for", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22e2f6a4812902a9e32a44a44d506e995de06e135bcd9639b6358ad3115c2761"}, "url": "/docs/compare/?release=9.2.23#9.2.23-e78d2741a7e38b54", "source_url": "/docs/release/9.2.23/#AEN110893"}]}, {"id": "9.4.14-2c06bd1ea85b74da", "cves": [], "html": "<p>Fix crash in <span>pg_restore</span> when using parallel mode and using a list file to select a subset of items to restore (Fabrízio de Royes Mello)</p>", "text": "Fix crash in pg_restore when using parallel mode and using a list file to select a subset of items to restore (Fabrízio de Royes Mello)", "title": "Fix crash in pg_restore when using parallel mode and using a list file to select a subset of items to restore", "commits": [], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/9.4.14/#AEN121403", "source_hash": "66299ab24a5d8f4bf348b82182d74ca2367cec65261ca3797794a5dc6ef4ac40", "section_path": ["Changes"], "commit_groups": [], "identity_text": "Fix crash in pg_restore when using parallel mode and using a list file to select a subset of items to restore (Fabrízio de Royes Mello)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.14/changes/006", "db_id": "809b5e89cd8a08302229e2aa81106597", "patch_ids": [], "statement_hash": "cbce4193df6e4ec771d5bef59626bcff973e4e46a0579cda60522af2114f822d", "relations": [{"rule": 2, "type": "equivalent", "target": "4973f8791ad7072a5b7268ac69880153", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbce4193df6e4ec771d5bef59626bcff973e4e46a0579cda60522af2114f822d"}}, {"rule": 2, "type": "equivalent", "target": "4b7b3c5c5d968e316d42a993dd32277e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbce4193df6e4ec771d5bef59626bcff973e4e46a0579cda60522af2114f822d"}}, {"rule": 2, "type": "equivalent", "target": "f651852ac99a0a35375d12de814e3e9c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbce4193df6e4ec771d5bef59626bcff973e4e46a0579cda60522af2114f822d"}}], "version": "9.4.14", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "4b7b3c5c5d968e316d42a993dd32277e", "kind": "equivalent", "version": "9.6.5", "label": "9.6.5", "title": "Fix crash in pg_restore when using parallel mode and using a list file to select a subset of items to restore", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbce4193df6e4ec771d5bef59626bcff973e4e46a0579cda60522af2114f822d"}, "url": "/docs/compare/?release=9.6.5#9.6.5-2c06bd1ea85b74da", "source_url": "/docs/release/9.6.5/#AEN135113"}, {"db_id": "f651852ac99a0a35375d12de814e3e9c", "kind": "equivalent", "version": "9.5.9", "label": "9.5.9", "title": "Fix crash in pg_restore when using parallel mode and using a list file to select a subset of items to restore", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbce4193df6e4ec771d5bef59626bcff973e4e46a0579cda60522af2114f822d"}, "url": "/docs/compare/?release=9.5.9#9.5.9-2c06bd1ea85b74da", "source_url": "/docs/release/9.5.9/#AEN129750"}, {"db_id": "4973f8791ad7072a5b7268ac69880153", "kind": "equivalent", "version": "9.3.19", "label": "9.3.19", "title": "Fix crash in pg_restore when using parallel mode and using a list file to select a subset of items to restore", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cbce4193df6e4ec771d5bef59626bcff973e4e46a0579cda60522af2114f822d"}, "url": "/docs/compare/?release=9.3.19#9.3.19-2c06bd1ea85b74da", "source_url": "/docs/release/9.3.19/#AEN115830"}]}, {"id": "9.4.14-3bc949d59fda11b7", "cves": [], "html": "<p>Change <span>ecpg</span>'s parser to allow RETURNING clauses without attached C variables (Michael Meskes)</p>\n<p>This allows <span>ecpg</span> 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.</p>", "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.", "title": "Change ecpg's parser to allow RETURNING clauses without attached C variables", "commits": [], "section": "Changes", "category": "improvement", "source_url": "/docs/release/9.4.14/#AEN121403", "source_hash": "9038445fd611f6a759ecdf14589ab9dd055e382b685bba52f3852dfff93584c0", "section_path": ["Changes"], "commit_groups": [], "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.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.14/changes/007", "db_id": "8b053a8e0c87c6b9951b5c4833080e89", "patch_ids": [], "statement_hash": "d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348", "relations": [{"rule": 2, "type": "equivalent", "target": "1c903c2b45dfeb3c4c69edb715182ffc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348"}}, {"rule": 2, "type": "equivalent", "target": "397743f1137bc45382759daafaf3e467", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348"}}, {"rule": 2, "type": "equivalent", "target": "cff3c4860563f6b8bc8a0dd39b1e7d98", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348"}}, {"rule": 2, "type": "equivalent", "target": "dcfd6b1086dc12dab1f710cc7cc1e6cf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348"}}], "version": "9.4.14", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "cff3c4860563f6b8bc8a0dd39b1e7d98", "kind": "equivalent", "version": "9.6.5", "label": "9.6.5", "title": "Change ecpg's parser to allow RETURNING clauses without attached C variables", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348"}, "url": "/docs/compare/?release=9.6.5#9.6.5-3bc949d59fda11b7", "source_url": "/docs/release/9.6.5/#AEN135113"}, {"db_id": "dcfd6b1086dc12dab1f710cc7cc1e6cf", "kind": "equivalent", "version": "9.5.9", "label": "9.5.9", "title": "Change ecpg's parser to allow RETURNING clauses without attached C variables", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348"}, "url": "/docs/compare/?release=9.5.9#9.5.9-3bc949d59fda11b7", "source_url": "/docs/release/9.5.9/#AEN129750"}, {"db_id": "397743f1137bc45382759daafaf3e467", "kind": "equivalent", "version": "9.3.19", "label": "9.3.19", "title": "Change ecpg's parser to allow RETURNING clauses without attached C variables", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348"}, "url": "/docs/compare/?release=9.3.19#9.3.19-3bc949d59fda11b7", "source_url": "/docs/release/9.3.19/#AEN115830"}, {"db_id": "1c903c2b45dfeb3c4c69edb715182ffc", "kind": "equivalent", "version": "9.2.23", "label": "9.2.23", "title": "Change ecpg's parser to allow RETURNING clauses without attached C variables", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "d6b9a4381c773a279650ba5e7db5fc20d012a093f7442a05e6843358d98fa348"}, "url": "/docs/compare/?release=9.2.23#9.2.23-3bc949d59fda11b7", "source_url": "/docs/release/9.2.23/#AEN110893"}]}, {"id": "9.4.14-8f60e466f4554514", "cves": [], "html": "<p>Improve selection of compiler flags for PL/Perl on Windows (Tom Lane)</p>\n<p>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 <span>PostgreSQL</span> Windows builds. This is not expected to cause problems, because type time_t is not used in any <span>PostgreSQL</span> API definitions.</p>", "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.", "title": "Improve selection of compiler flags for PL/Perl on Windows", "commits": [], "section": "Changes", "category": "improvement", "source_url": "/docs/release/9.4.14/#AEN121403", "source_hash": "5522284459af55ecc5bd039bfa2c5bffca555438b4b966714cfd04cf34cb26c5", "section_path": ["Changes"], "commit_groups": [], "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.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.4.14/changes/008", "db_id": "fc4dc1c8fda86f29580edb9411bbad9a", "patch_ids": [], "statement_hash": "59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66", "relations": [{"rule": 2, "type": "equivalent", "target": "174ebed95fdf320d91b3db9f71a9265a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66"}}, {"rule": 2, "type": "equivalent", "target": "a8ad0fb10f04704616588a82af98dbff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66"}}, {"rule": 2, "type": "equivalent", "target": "f490072174f6dab4a7f5d5d01709bc8c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66"}}, {"rule": 2, "type": "equivalent", "target": "ff5f500a1e1a883ae5db2f02f35c34a3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66"}}], "version": "9.4.14", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "174ebed95fdf320d91b3db9f71a9265a", "kind": "equivalent", "version": "9.6.5", "label": "9.6.5", "title": "Improve selection of compiler flags for PL/Perl on Windows", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66"}, "url": "/docs/compare/?release=9.6.5#9.6.5-8f60e466f4554514", "source_url": "/docs/release/9.6.5/#AEN135113"}, {"db_id": "ff5f500a1e1a883ae5db2f02f35c34a3", "kind": "equivalent", "version": "9.5.9", "label": "9.5.9", "title": "Improve selection of compiler flags for PL/Perl on Windows", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66"}, "url": "/docs/compare/?release=9.5.9#9.5.9-8f60e466f4554514", "source_url": "/docs/release/9.5.9/#AEN129750"}, {"db_id": "a8ad0fb10f04704616588a82af98dbff", "kind": "equivalent", "version": "9.3.19", "label": "9.3.19", "title": "Improve selection of compiler flags for PL/Perl on Windows", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66"}, "url": "/docs/compare/?release=9.3.19#9.3.19-8f60e466f4554514", "source_url": "/docs/release/9.3.19/#AEN115830"}, {"db_id": "f490072174f6dab4a7f5d5d01709bc8c", "kind": "equivalent", "version": "9.2.23", "label": "9.2.23", "title": "Improve selection of compiler flags for PL/Perl on Windows", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "59dc800097c8d118dc36d0f41fc2de69995f5298e698406c8c044ec4ab49dc66"}, "url": "/docs/compare/?release=9.2.23#9.2.23-8f60e466f4554514", "source_url": "/docs/release/9.2.23/#AEN110893"}]}]}], "stats": [{"key": "all", "label": "All changes", "count": 8}, {"key": "feature", "label": "Features", "count": 0}, {"key": "bugfix", "label": "Bug fixes", "count": 2}, {"key": "security", "label": "Security", "count": 0}, {"key": "performance", "label": "Performance", "count": 0}, {"key": "compatibility", "label": "Compatibility", "count": 0}, {"key": "improvement", "label": "Improvements", "count": 6}], "total": 8, "release_count": 1, "cross_major": false, "cve_count": 0, "cves": [], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 8, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}