{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2011-04-18", "build": "9.0.4", "major": "9.0", "minor": 4, "manual": "9.0", "status": "stable", "doc_git": "", "version": "9.0.4", "eol_date": "2015-10-08", "date_text": "2011-04-18", "supported": false, "manual_url": "/docs/9.0/release-9-0-4.html", "source_url": "/docs/release/9.0.4/", "entry_count": 29, "placeholder": false, "content_hash": "9a7f7ce73ede97278b042c9c3f52f02f8a8216900fbbdd68818ab1b011f7f046", "manual_build": "9.0.23", "source_as_of": "", "changes_count": 29, "doc_loaded_at": "2026-09-25T02:22:44.760693", "migration_html": "<p>A dump/restore is not required for those running 9.0.X.</p>\n<p>However, if your installation was upgraded from a previous major release by running <span>pg_upgrade</span>, you should take action to prevent possible data loss due to a now-fixed bug in <span>pg_upgrade</span>. The recommended solution is to run VACUUM FREEZE on all TOAST tables. More information is available at <a href=\"http://wiki.postgresql.org/wiki/20110408pg_upgrade_fix\">http://wiki.postgresql.org/wiki/20110408pg_upgrade_fix</a>.</p>", "compatibility_count": 0, "label": "9.0.4", "status_label": "Historical", "eol": "2015-10-08", "age_days": 5643, "support_days": -4009}, "groups": [{"date": "2011-04-18", "build": "9.0.4", "major": "9.0", "minor": 4, "manual": "9.0", "status": "stable", "doc_git": "", "version": "9.0.4", "eol_date": "2015-10-08", "date_text": "2011-04-18", "supported": false, "manual_url": "/docs/9.0/release-9-0-4.html", "source_url": "/docs/release/9.0.4/", "entry_count": 29, "placeholder": false, "content_hash": "9a7f7ce73ede97278b042c9c3f52f02f8a8216900fbbdd68818ab1b011f7f046", "manual_build": "9.0.23", "source_as_of": "", "changes_count": 29, "doc_loaded_at": "2026-09-25T02:22:44.760693", "migration_html": "<p>A dump/restore is not required for those running 9.0.X.</p>\n<p>However, if your installation was upgraded from a previous major release by running <span>pg_upgrade</span>, you should take action to prevent possible data loss due to a now-fixed bug in <span>pg_upgrade</span>. The recommended solution is to run VACUUM FREEZE on all TOAST tables. More information is available at <a href=\"http://wiki.postgresql.org/wiki/20110408pg_upgrade_fix\">http://wiki.postgresql.org/wiki/20110408pg_upgrade_fix</a>.</p>", "compatibility_count": 0, "label": "9.0.4", "status_label": "Historical", "eol": "2015-10-08", "age_days": 5643, "support_days": -4009, "entries": [{"id": "9.0.4-2011055a743d4481", "cves": [], "html": "<p>Fix <span>pg_upgrade</span>'s handling of TOAST tables (Bruce Momjian)</p>\n<p>The pg_class.relfrozenxid value for TOAST tables was not correctly copied into the new installation during <span>pg_upgrade</span>. This could later result in pg_clog files being discarded while they were still needed to validate tuples in the TOAST tables, leading to <span>\"could not access status of transaction\"</span> failures.</p>\n<p>This error poses a significant risk of data loss for installations that have been upgraded with <span>pg_upgrade</span>. This patch corrects the problem for future uses of <span>pg_upgrade</span>, but does not in itself cure the issue in installations that have been processed with a buggy version of <span>pg_upgrade</span>.</p>", "text": "Fix pg_upgrade's handling of TOAST tables (Bruce Momjian) The pg_class.relfrozenxid value for TOAST tables was not correctly copied into the new installation during pg_upgrade. This could later result in pg_clog files being discarded while they were still needed to validate tuples in the TOAST tables, leading to \"could not access status of transaction\" failures. This error poses a significant risk of data loss for installations that have been upgraded with pg_upgrade. This patch corrects the problem for future uses of pg_upgrade, but does not in itself cure the issue in installations that have been processed with a buggy version of pg_upgrade.", "title": "Fix pg_upgrade's handling of TOAST tables", "commits": [], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/9.0.4/#AEN101862", "source_hash": "0807076979c47bdafbee3a16da50f18829c446ec53e143a7f084ddbd214883c1", "section_path": ["Changes"], "commit_groups": [], "identity_text": "Fix pg_upgrade's handling of TOAST tables (Bruce Momjian) The pg_class.relfrozenxid value for TOAST tables was not correctly copied into the new installation during pg_upgrade. This could later result in pg_clog files being discarded while they were still needed to validate tuples in the TOAST tables, leading to could not access status of transaction failures. This error poses a significant risk of data loss for installations that have been upgraded with pg_upgrade. This patch corrects the problem for future uses of pg_upgrade, but does not in itself cure the issue in installations that have been processed with a buggy version of pg_upgrade.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/001", "db_id": "b1b600505eb94600a25d8e45fd752eed", "patch_ids": [], "statement_hash": "163dd42244d988e02239ef1d998a1951e653f2162d6652a6a81aed8ef8983a7f", "relations": [], "version": "9.0.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-e3f8c9ec4c2bb939", "cves": [], "html": "<p>Suppress incorrect <span>\"PD_ALL_VISIBLE flag was incorrectly set\"</span> warning (Heikki Linnakangas)</p>\n<p>VACUUM would sometimes issue this warning in cases that are actually valid.</p>", "text": "Suppress incorrect \"PD_ALL_VISIBLE flag was incorrectly set\" warning (Heikki Linnakangas) VACUUM would sometimes issue this warning in cases that are actually valid.", "title": "Suppress incorrect \"PD_ALL_VISIBLE flag was incorrectly set\" warning", "commits": [], "section": "Changes", "category": "improvement", "source_url": "/docs/release/9.0.4/#AEN101862", "source_hash": "2d3d9900b78b20b7a37370c1db7c8ebee3cb32ef0a8cf11f07cab7fdbe56631b", "section_path": ["Changes"], "commit_groups": [], "identity_text": "Suppress incorrect PD_ALL_VISIBLE flag was incorrectly set warning (Heikki Linnakangas) VACUUM would sometimes issue this warning in cases that are actually valid.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/002", "db_id": "f4d439f2d0f2e45c2ac1956c5d68c24f", "patch_ids": [], "statement_hash": "0b41750e055e079830c8a467d29839f457722aef966fc4b71a6717042f4b8708", "relations": [], "version": "9.0.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-6b6045d2319c307e", "cves": [], "html": "<p>Use better SQLSTATE error codes for hot standby conflict cases (Tatsuo Ishii and Simon Riggs)</p>\n<p>All retryable conflict errors now have an error code that indicates that a retry is possible. Also, session closure due to the database being dropped on the master is now reported as ERRCODE_DATABASE_DROPPED, rather than ERRCODE_ADMIN_SHUTDOWN, so that connection poolers can handle the situation correctly.</p>", "text": "Use better SQLSTATE error codes for hot standby conflict cases (Tatsuo Ishii and Simon Riggs) All retryable conflict errors now have an error code that indicates that a retry is possible. Also, session closure due to the database being dropped on the master is now reported as ERRCODE_DATABASE_DROPPED, rather than ERRCODE_ADMIN_SHUTDOWN, so that connection poolers can handle the situation correctly.", "title": "Use better SQLSTATE error codes for hot standby conflict cases", "commits": [], "section": "Changes", "category": "improvement", "source_url": "/docs/release/9.0.4/#AEN101862", "source_hash": "2f2ed815489f65286f90efe70273ab12c3a727c9fa649f3d8210518b89990e65", "section_path": ["Changes"], "commit_groups": [], "identity_text": "Use better SQLSTATE error codes for hot standby conflict cases (Tatsuo Ishii and Simon Riggs) All retryable conflict errors now have an error code that indicates that a retry is possible. Also, session closure due to the database being dropped on the master is now reported as ERRCODE_DATABASE_DROPPED, rather than ERRCODE_ADMIN_SHUTDOWN, so that connection poolers can handle the situation correctly.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/003", "db_id": "8220a13fac37af3ca3bb25082bdf96ef", "patch_ids": [], "statement_hash": "f13dbed18551240d780d4c3d3f90f88a60bdb03c950c9d307733b093c658b2c3", "relations": [], "version": "9.0.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-8b398f301152b11f", "cves": [], "html": "<p>Prevent intermittent hang in interactions of startup process with bgwriter process (Simon Riggs)</p>\n<p>This affected recovery in non-hot-standby cases.</p>", "text": "Prevent intermittent hang in interactions of startup process with bgwriter process (Simon Riggs) This affected recovery in non-hot-standby cases.", "title": "Prevent intermittent hang in interactions of startup process with bgwriter process", "commits": [], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/9.0.4/#AEN101862", "source_hash": "6f7e0c44d76105ad0ab9dff6345e007b584f6e95deed466b2afb2e9ec6224d30", "section_path": ["Changes"], "commit_groups": [], "identity_text": "Prevent intermittent hang in interactions of startup process with bgwriter process (Simon Riggs) This affected recovery in non-hot-standby cases.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/004", "db_id": "1f5f96cb9f4cca288ec82b374cd785c1", "patch_ids": [], "statement_hash": "7ae172bd47912f8d87ea14870bd7d24dd110f6649f0d63ac969ea59e1f42aba7", "relations": [], "version": "9.0.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-a29077310c6d1da3", "cves": [], "html": "<p>Disallow including a composite type in itself (Tom Lane)</p>\n<p>This prevents scenarios wherein the server could recurse infinitely while processing the composite type. While there are some possible uses for such a structure, they don't seem compelling enough to justify the effort required to make sure it always works safely.</p>", "text": "Disallow including a composite type in itself (Tom Lane) This prevents scenarios wherein the server could recurse infinitely while processing the composite type. While there are some possible uses for such a structure, they don't seem compelling enough to justify the effort required to make sure it always works safely.", "title": "Disallow including a composite type in itself", "commits": [], "section": "Changes", "category": "improvement", "source_url": "/docs/release/9.0.4/#AEN101862", "source_hash": "af3f6dd660975aadcc10c2d57259faefd45362a26b37a31cf70527799b17753f", "section_path": ["Changes"], "commit_groups": [], "identity_text": "Disallow including a composite type in itself (Tom Lane) This prevents scenarios wherein the server could recurse infinitely while processing the composite type. While there are some possible uses for such a structure, they don't seem compelling enough to justify the effort required to make sure it always works safely.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/005", "db_id": "1b15660d65d4bb5789f07d23a6f9d027", "patch_ids": [], "statement_hash": "77451f7459f24c81415626c2b9388caa2e9a4230c84083788716727002e28991", "relations": [], "version": "9.0.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-780d08970ce0b2ad", "cves": [], "html": "<p>Avoid potential deadlock during catalog cache initialization (Nikhil Sontakke)</p>\n<p>In some cases the cache loading code would acquire share lock on a system index before locking the index's catalog. This could deadlock against processes trying to acquire exclusive locks in the other, more standard order.</p>", "text": "Avoid potential deadlock during catalog cache initialization (Nikhil Sontakke) In some cases the cache loading code would acquire share lock on a system index before locking the index's catalog. This could deadlock against processes trying to acquire exclusive locks in the other, more standard order.", "title": "Avoid potential deadlock during catalog cache initialization", "commits": [], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/9.0.4/#AEN101862", "source_hash": "84fe0a235d3c412b19744bd753b445471c45bbe91a6d4fd144b3d96e31497ef6", "section_path": ["Changes"], "commit_groups": [], "identity_text": "Avoid potential deadlock during catalog cache initialization (Nikhil Sontakke) In some cases the cache loading code would acquire share lock on a system index before locking the index's catalog. This could deadlock against processes trying to acquire exclusive locks in the other, more standard order.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/006", "db_id": "0c32e76719a592d9b833b5d6471d8d51", "patch_ids": [], "statement_hash": "2227a3d53c2738c645e8ae4e27d257d89f29dda4c166eb297df555233b58ed79", "relations": [], "version": "9.0.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-4d530bf4fa925ef0", "cves": [], "html": "<p>Fix dangling-pointer problem in BEFORE ROW UPDATE trigger handling when there was a concurrent update to the target tuple (Tom Lane)</p>\n<p>This bug has been observed to result in intermittent <span>\"cannot extract system attribute from virtual tuple\"</span> failures while trying to do UPDATE RETURNING ctid. There is a very small probability of more serious errors, such as generating incorrect index entries for the updated tuple.</p>", "text": "Fix dangling-pointer problem in BEFORE ROW UPDATE trigger handling when there was a concurrent update to the target tuple (Tom Lane) This bug has been observed to result in intermittent \"cannot extract system attribute from virtual tuple\" failures while trying to do UPDATE RETURNING ctid. There is a very small probability of more serious errors, such as generating incorrect index entries for the updated tuple.", "title": "Fix dangling-pointer problem in BEFORE ROW UPDATE trigger handling when there was a concurrent update to the target tuple", "commits": [], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/9.0.4/#AEN101862", "source_hash": "c69b7ccbd7e1c8aecaf72232cea71743d48328eead13f51955e667ea2d11ea15", "section_path": ["Changes"], "commit_groups": [], "identity_text": "Fix dangling-pointer problem in BEFORE ROW UPDATE trigger handling when there was a concurrent update to the target tuple (Tom Lane) This bug has been observed to result in intermittent cannot extract system attribute from virtual tuple failures while trying to do UPDATE RETURNING ctid. There is a very small probability of more serious errors, such as generating incorrect index entries for the updated tuple.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/007", "db_id": "e03b5f827b0ab8103318fdd692417122", "patch_ids": [], "statement_hash": "0d70aae5956d25f3e90c5e1875303c24c51a0f866c44daa4bbc4218706231e34", "relations": [], "version": "9.0.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-220eea0991fa45d5", "cves": [], "html": "<p>Disallow DROP TABLE when there are pending deferred trigger events for the table (Tom Lane)</p>\n<p>Formerly the DROP would go through, leading to <span>\"could not open relation with OID nnn\"</span> errors when the triggers were eventually fired.</p>", "text": "Disallow DROP TABLE when there are pending deferred trigger events for the table (Tom Lane) Formerly the DROP would go through, leading to \"could not open relation with OID nnn\" errors when the triggers were eventually fired.", "title": "Disallow DROP TABLE when there are pending deferred trigger events for the table", "commits": [], "section": "Changes", "category": "improvement", "source_url": "/docs/release/9.0.4/#AEN101862", "source_hash": "03f5099b235965e4d5c96c52ed2a551b484626371075c8c8276f3add335290eb", "section_path": ["Changes"], "commit_groups": [], "identity_text": "Disallow DROP TABLE when there are pending deferred trigger events for the table (Tom Lane) Formerly the DROP would go through, leading to could not open relation with OID nnn errors when the triggers were eventually fired.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/008", "db_id": "b0cb6fbf7af9b318ae7d05c0b294a3d8", "patch_ids": [], "statement_hash": "cb9593ebf0e2718245281388b0d55c872898f34e18bfb0c647e756e5210d641b", "relations": [], "version": "9.0.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-20ea16d3bd2bfcbb", "cves": [], "html": "<p>Allow <span>\"replication\"</span> as a user name in pg_hba.conf (Andrew Dunstan)</p>\n<p><span>\"replication\"</span> is special in the database name column, but it was mistakenly also treated as special in the user name column.</p>", "text": "Allow \"replication\" as a user name in pg_hba.conf (Andrew Dunstan) \"replication\" is special in the database name column, but it was mistakenly also treated as special in the user name column.", "title": "Allow \"replication\" as a user name in pg_hba.conf", "commits": [], "section": "Changes", "category": "improvement", "source_url": "/docs/release/9.0.4/#AEN101862", "source_hash": "6e633da8e0b1aadcf523d6a6c621b13b1e7b46fce688d81da582ca793280c88d", "section_path": ["Changes"], "commit_groups": [], "identity_text": "Allow replication as a user name in pg_hba.conf (Andrew Dunstan) replication is special in the database name column, but it was mistakenly also treated as special in the user name column.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/009", "db_id": "cfb5f7eb1d87f25f1ca160d1dabdae7a", "patch_ids": [], "statement_hash": "d7fc64af5994afe4645f77a000a93724885abe72463b5726bdf90b783b4ab5dc", "relations": [], "version": "9.0.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-31922459afc6621b", "cves": [], "html": "<p>Prevent crash triggered by constant-false WHERE conditions during GEQO optimization (Tom Lane)</p>", "text": "Prevent crash triggered by constant-false WHERE conditions during GEQO optimization (Tom Lane)", "title": "Prevent crash triggered by constant-false WHERE conditions during GEQO optimization", "commits": [], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/9.0.4/#AEN101862", "source_hash": "44da9facad43ea6af96b50ec4d3d7a27b4cb32ccfd0b7fe07d732a5a30ae544e", "section_path": ["Changes"], "commit_groups": [], "identity_text": "Prevent crash triggered by constant-false WHERE conditions during GEQO optimization (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/010", "db_id": "6c86b2023b03102d513e1260a5bb969e", "patch_ids": [], "statement_hash": "8b251c042a225147a415fcd7d274bdb8606a7d05bcd34c636613f4d89051e0be", "relations": [], "version": "9.0.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-66bdcdc3a11aa2ca", "cves": [], "html": "<p>Improve planner's handling of semi-join and anti-join cases (Tom Lane)</p>", "text": "Improve planner's handling of semi-join and anti-join cases (Tom Lane)", "title": "Improve planner's handling of semi-join and anti-join cases", "commits": [], "section": "Changes", "category": "improvement", "source_url": "/docs/release/9.0.4/#AEN101862", "source_hash": "adf85ba19f1aa4a96f1724469d2600cf4b5246f9fb823fdda9404992a0e07582", "section_path": ["Changes"], "commit_groups": [], "identity_text": "Improve planner's handling of semi-join and anti-join cases (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/011", "db_id": "3d814fa565e4e7e7e32e5b591de2c7fc", "patch_ids": [], "statement_hash": "fd2a37dcbfa4e51cf5621a7d29f342ea3512757f9f44d46b10640268f85c6b6f", "relations": [], "version": "9.0.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-3c8c9572c1251999", "cves": [], "html": "<p>Fix handling of SELECT FOR UPDATE in a sub-SELECT (Tom Lane)</p>\n<p>This bug typically led to <span>\"cannot extract system attribute from virtual tuple\"</span> errors.</p>", "text": "Fix handling of SELECT FOR UPDATE in a sub-SELECT (Tom Lane) This bug typically led to \"cannot extract system attribute from virtual tuple\" errors.", "title": "Fix handling of SELECT FOR UPDATE in a sub-SELECT", "commits": [], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/9.0.4/#AEN101862", "source_hash": "27b8dc6518bb71dc8f14f6e553ea1007ba769da73b72c91c514d3ddcf0e79962", "section_path": ["Changes"], "commit_groups": [], "identity_text": "Fix handling of SELECT FOR UPDATE in a sub-SELECT (Tom Lane) This bug typically led to cannot extract system attribute from virtual tuple errors.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/012", "db_id": "80b9ae54784f656384ff164b7936008e", "patch_ids": [], "statement_hash": "5db979c38cbb37a5e92bb384dde39ad8560d2fa3afd39ae67548a71f1ed50c5d", "relations": [], "version": "9.0.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-6e81fa8943d8abaa", "cves": [], "html": "<p>Fix selectivity estimation for text search to account for NULLs (Jesper Krogh)</p>", "text": "Fix selectivity estimation for text search to account for NULLs (Jesper Krogh)", "title": "Fix selectivity estimation for text search to account for NULLs", "commits": [], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/9.0.4/#AEN101862", "source_hash": "51f506a7bf178ffb69f8b776f75d8538de82be3941c87aa32a9c62111e21b2f5", "section_path": ["Changes"], "commit_groups": [], "identity_text": "Fix selectivity estimation for text search to account for NULLs (Jesper Krogh)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/013", "db_id": "133e7755b96c9f6a6140796f74e9f527", "patch_ids": [], "statement_hash": "2a19038b32c431b83b7c43f8bdd3281b2a383718c7487c51e57c23cc40128799", "relations": [], "version": "9.0.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-709b347bf5f05f6c", "cves": [], "html": "<p>Fix get_actual_variable_range() to support hypothetical indexes injected by an index adviser plugin (Gurjeet Singh)</p>", "text": "Fix get_actual_variable_range() to support hypothetical indexes injected by an index adviser plugin (Gurjeet Singh)", "title": "Fix get_actual_variable_range() to support hypothetical indexes injected by an index adviser plugin", "commits": [], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/9.0.4/#AEN101862", "source_hash": "63db42bbbb14a242301b09f120b4fa965df3e3cf4e1691ea5b4451735192df19", "section_path": ["Changes"], "commit_groups": [], "identity_text": "Fix get_actual_variable_range() to support hypothetical indexes injected by an index adviser plugin (Gurjeet Singh)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/014", "db_id": "b1bb92b407ed05a843f7fc18b7be147a", "patch_ids": [], "statement_hash": "3c51065a91c2722079ce49516e9ad815a846ebcad6db70021494e51197dc6ee3", "relations": [], "version": "9.0.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-c5f63b1d6207504a", "cves": [], "html": "<p>Fix PL/Python memory leak involving array slices (Daniel Popowich)</p>", "text": "Fix PL/Python memory leak involving array slices (Daniel Popowich)", "title": "Fix PL/Python memory leak involving array slices", "commits": [], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/9.0.4/#AEN101862", "source_hash": "50dbb56f624b49729298114f784dc64b1f787d37ad3e3bd0f26470c6b93a477a", "section_path": ["Changes"], "commit_groups": [], "identity_text": "Fix PL/Python memory leak involving array slices (Daniel Popowich)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/015", "db_id": "84ccba5a2d024c455fc7c17b3d3e8dc9", "patch_ids": [], "statement_hash": "6ebc58549db8d13da5424a7f01fec4fb1b234a4a6855074f8be25abc54c8cd45", "relations": [], "version": "9.0.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-5422990bacdc096e", "cves": [], "html": "<p>Allow <span>libpq</span>'s SSL initialization to succeed when user's home directory is unavailable (Tom Lane)</p>\n<p>If the SSL mode is such that a root certificate file is not required, there is no need to fail. This change restores the behavior to what it was in pre-9.0 releases.</p>", "text": "Allow libpq's SSL initialization to succeed when user's home directory is unavailable (Tom Lane) If the SSL mode is such that a root certificate file is not required, there is no need to fail. This change restores the behavior to what it was in pre-9.0 releases.", "title": "Allow libpq's SSL initialization to succeed when user's home directory is unavailable", "commits": [], "section": "Changes", "category": "improvement", "source_url": "/docs/release/9.0.4/#AEN101862", "source_hash": "2a240b89fb126aabef0c453ceabbc7fc4f855f87e712157234c886b19b162d88", "section_path": ["Changes"], "commit_groups": [], "identity_text": "Allow libpq's SSL initialization to succeed when user's home directory is unavailable (Tom Lane) If the SSL mode is such that a root certificate file is not required, there is no need to fail. This change restores the behavior to what it was in pre-9.0 releases.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/016", "db_id": "033a3bc251996f3179427576e2d779fe", "patch_ids": [], "statement_hash": "b2c1d85c0a432cad8785a98416d7d4fb78d9d16db749b27e5e9d10a474f786bd", "relations": [], "version": "9.0.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-5faffb6361012d71", "cves": [], "html": "<p>Fix <span>libpq</span> to return a useful error message for errors detected in <code>conninfo_array_parse</code> (Joseph Adams)</p>\n<p>A typo caused the library to return NULL, rather than the PGconn structure containing the error message, to the application.</p>", "text": "Fix libpq to return a useful error message for errors detected in conninfo_array_parse (Joseph Adams) A typo caused the library to return NULL, rather than the PGconn structure containing the error message, to the application.", "title": "Fix libpq to return a useful error message for errors detected in conninfo_array_parse", "commits": [], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/9.0.4/#AEN101862", "source_hash": "6d23ac6a65fa42a30ed305833b9b3f6f793c7caba4a49447302bb42662fd6cb0", "section_path": ["Changes"], "commit_groups": [], "identity_text": "Fix libpq to return a useful error message for errors detected in conninfo_array_parse (Joseph Adams) A typo caused the library to return NULL, rather than the PGconn structure containing the error message, to the application.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/017", "db_id": "91f4724332b736e84ee33d2dcf943558", "patch_ids": [], "statement_hash": "b05b329fcd8dc386e5de4c6408538f563d6b463d3a10fe3341e423a9ac0b406d", "relations": [], "version": "9.0.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-e3897dd434d6752b", "cves": [], "html": "<p>Fix <span>ecpg</span> preprocessor's handling of float constants (Heikki Linnakangas)</p>", "text": "Fix ecpg preprocessor's handling of float constants (Heikki Linnakangas)", "title": "Fix ecpg preprocessor's handling of float constants", "commits": [], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/9.0.4/#AEN101862", "source_hash": "526454c397303096b2c446fa4772da4f5aeedb7ecc58bb35acde698c784f33b5", "section_path": ["Changes"], "commit_groups": [], "identity_text": "Fix ecpg preprocessor's handling of float constants (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/018", "db_id": "01b1a4bcaefe01d8f7b7c24754c7b449", "patch_ids": [], "statement_hash": "c549ba58b0f3d7f27ba9249ccd2dfdf99ed7c3c5f3e803082ee4b74a5c7e025d", "relations": [], "version": "9.0.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-2113ff3f597df7ae", "cves": [], "html": "<p>Fix parallel <span>pg_restore</span> to handle comments on POST_DATA items correctly (Arnd Hannemann)</p>", "text": "Fix parallel pg_restore to handle comments on POST_DATA items correctly (Arnd Hannemann)", "title": "Fix parallel pg_restore to handle comments on POST_DATA items correctly", "commits": [], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/9.0.4/#AEN101862", "source_hash": "605f158ae7eb46f145349c3a1b0235ad4c44a1aa6c19f4d6289e3a2dd45f6aa7", "section_path": ["Changes"], "commit_groups": [], "identity_text": "Fix parallel pg_restore to handle comments on POST_DATA items correctly (Arnd Hannemann)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/019", "db_id": "e38ef3008a42b292f0d50e3b027e788e", "patch_ids": [], "statement_hash": "02f41bcc4a89bf5cd2c0d85cb423da48773d6951bfecc489e1c85ba808508db0", "relations": [], "version": "9.0.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-906fd923df87a113", "cves": [], "html": "<p>Fix <span>pg_restore</span> to cope with long lines (over 1KB) in TOC files (Tom Lane)</p>", "text": "Fix pg_restore to cope with long lines (over 1KB) in TOC files (Tom Lane)", "title": "Fix pg_restore to cope with long lines (over 1KB) in TOC files", "commits": [], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/9.0.4/#AEN101862", "source_hash": "16ac887a32bec712d9e4cfdba5dc203fd448dc6f1df716a1d95151fcda2b1707", "section_path": ["Changes"], "commit_groups": [], "identity_text": "Fix pg_restore to cope with long lines (over 1KB) in TOC files (Tom Lane)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/020", "db_id": "56adc1a0ee434e8bce28979ac784724d", "patch_ids": [], "statement_hash": "2af305e781716fe06a5a11cdb53ba7be87351fefe28c85161450383cf0f25e5e", "relations": [], "version": "9.0.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-5475b753b7168692", "cves": [], "html": "<p>Put in more safeguards against crashing due to division-by-zero with overly enthusiastic compiler optimization (Aurelien Jarno)</p>", "text": "Put in more safeguards against crashing due to division-by-zero with overly enthusiastic compiler optimization (Aurelien Jarno)", "title": "Put in more safeguards against crashing due to division-by-zero with overly enthusiastic compiler optimization", "commits": [], "section": "Changes", "category": "improvement", "source_url": "/docs/release/9.0.4/#AEN101862", "source_hash": "48b652773d8d12366e4764a7b1dc89c38ce0f5d0087d2c738b1ec902d0206d80", "section_path": ["Changes"], "commit_groups": [], "identity_text": "Put in more safeguards against crashing due to division-by-zero with overly enthusiastic compiler optimization (Aurelien Jarno)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/021", "db_id": "88e839fb33f1629abca5377bfea3de2d", "patch_ids": [], "statement_hash": "b444102450ff663ecd6dad93758048325d6ad44023307641b8db512364523ef9", "relations": [], "version": "9.0.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-a6b79d9d47b3f6ee", "cves": [], "html": "<p>Support use of dlopen() in FreeBSD and OpenBSD on MIPS (Tom Lane)</p>\n<p>There was a hard-wired assumption that this system function was not available on MIPS hardware on these systems. Use a compile-time test instead, since more recent versions have it.</p>", "text": "Support use of dlopen() in FreeBSD and OpenBSD on MIPS (Tom Lane) There was a hard-wired assumption that this system function was not available on MIPS hardware on these systems. Use a compile-time test instead, since more recent versions have it.", "title": "Support use of dlopen() in FreeBSD and OpenBSD on MIPS", "commits": [], "section": "Changes", "category": "improvement", "source_url": "/docs/release/9.0.4/#AEN101862", "source_hash": "7c4d359441d9e28659ef252eb8eb7bb19c9e551c68f2f80fc98b5c4487908a09", "section_path": ["Changes"], "commit_groups": [], "identity_text": "Support use of dlopen() in FreeBSD and OpenBSD on MIPS (Tom Lane) There was a hard-wired assumption that this system function was not available on MIPS hardware on these systems. Use a compile-time test instead, since more recent versions have it.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/022", "db_id": "6881dfb99a098293e41faaab89c52f7e", "patch_ids": [], "statement_hash": "00cca5410e8113acf236f2ddc400aed251b457a355160e0a30e1b2e1c6449ce9", "relations": [], "version": "9.0.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-56b6f581bb41696d", "cves": [], "html": "<p>Fix compilation failures on HP-UX (Heikki Linnakangas)</p>", "text": "Fix compilation failures on HP-UX (Heikki Linnakangas)", "title": "Fix compilation failures on HP-UX", "commits": [], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/9.0.4/#AEN101862", "source_hash": "f8df688ba2b89488160aa173c4ccf57346a1c72514ab9e55940436062bd7a08e", "section_path": ["Changes"], "commit_groups": [], "identity_text": "Fix compilation failures on HP-UX (Heikki Linnakangas)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/023", "db_id": "616c00f1fea9a080d20f865115ce4f29", "patch_ids": [], "statement_hash": "6c3e0189705c9b678d4b58a83349c20338df9fd6a7208f653ec341d526784c62", "relations": [], "version": "9.0.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-be8ea8e535a91964", "cves": [], "html": "<p>Avoid crash when trying to write to the Windows console very early in process startup (Rushabh Lathia)</p>", "text": "Avoid crash when trying to write to the Windows console very early in process startup (Rushabh Lathia)", "title": "Avoid crash when trying to write to the Windows console very early in process startup", "commits": [], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/9.0.4/#AEN101862", "source_hash": "f2a86888c28f76b9923828bf6e285d15e918366e1ab02e5cbe3ee9b1501c2bc4", "section_path": ["Changes"], "commit_groups": [], "identity_text": "Avoid crash when trying to write to the Windows console very early in process startup (Rushabh Lathia)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/024", "db_id": "bf8efc53caf1574d95c32df561f86569", "patch_ids": [], "statement_hash": "e802271dcfe590a1c4cdc8059a926dc03bee180403f2bf4f2f1c7ec884884a7f", "relations": [], "version": "9.0.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-42234ef346a2e5b9", "cves": [], "html": "<p>Support building with MinGW 64 bit compiler for Windows (Andrew Dunstan)</p>", "text": "Support building with MinGW 64 bit compiler for Windows (Andrew Dunstan)", "title": "Support building with MinGW 64 bit compiler for Windows", "commits": [], "section": "Changes", "category": "improvement", "source_url": "/docs/release/9.0.4/#AEN101862", "source_hash": "e8e52806552c442ef98792964a68f5bb92d67e2fb40ca425a0cac85325456204", "section_path": ["Changes"], "commit_groups": [], "identity_text": "Support building with MinGW 64 bit compiler for Windows (Andrew Dunstan)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/025", "db_id": "925dc1cb9ee564b1cb5ca8575b15a6a5", "patch_ids": [], "statement_hash": "24c1d446b374bbd890a982c1385c783244d821719f7ae0dfea566f6c7e9791df", "relations": [], "version": "9.0.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-f3e3579e2ff13019", "cves": [], "html": "<p>Fix version-incompatibility problem with <span>libintl</span> on Windows (Hiroshi Inoue)</p>", "text": "Fix version-incompatibility problem with libintl on Windows (Hiroshi Inoue)", "title": "Fix version-incompatibility problem with libintl on Windows", "commits": [], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/9.0.4/#AEN101862", "source_hash": "ce3b752b3636974f10f6d1821e16738aa3711afbea973c7d3a90f2c8f1090d2e", "section_path": ["Changes"], "commit_groups": [], "identity_text": "Fix version-incompatibility problem with libintl on Windows (Hiroshi Inoue)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/026", "db_id": "ecf30c2e17fc6cd1580536f7ed21253c", "patch_ids": [], "statement_hash": "4be8c709b51d8b9c035e8cd97c5e3248d5ab437c5a178178c376295f3e120e1f", "relations": [], "version": "9.0.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-583c9edd9e63ae6e", "cves": [], "html": "<p>Fix usage of <span>xcopy</span> in Windows build scripts to work correctly under Windows 7 (Andrew Dunstan)</p>\n<p>This affects the build scripts only, not installation or usage.</p>", "text": "Fix usage of xcopy in Windows build scripts to work correctly under Windows 7 (Andrew Dunstan) This affects the build scripts only, not installation or usage.", "title": "Fix usage of xcopy in Windows build scripts to work correctly under Windows 7", "commits": [], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/9.0.4/#AEN101862", "source_hash": "2df3226f7ad8b11960b232dc74a532805dd4f2140eac7a7e335802ea4b2627f8", "section_path": ["Changes"], "commit_groups": [], "identity_text": "Fix usage of xcopy in Windows build scripts to work correctly under Windows 7 (Andrew Dunstan) This affects the build scripts only, not installation or usage.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/027", "db_id": "4d00478d9c47a06ca9f3d543f3898af3", "patch_ids": [], "statement_hash": "da231355ed59baeb6c660d03fba0ac58347d07f981fd64bbba7848bbcb939838", "relations": [], "version": "9.0.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-5a33706d368244c4", "cves": [], "html": "<p>Fix path separator used by <span>pg_regress</span> on Cygwin (Andrew Dunstan)</p>", "text": "Fix path separator used by pg_regress on Cygwin (Andrew Dunstan)", "title": "Fix path separator used by pg_regress on Cygwin", "commits": [], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/9.0.4/#AEN101862", "source_hash": "7531dfb226bf67b3efa6c38b5e0fb46742ec4b14b8b49369fb0d1920ce121a91", "section_path": ["Changes"], "commit_groups": [], "identity_text": "Fix path separator used by pg_regress on Cygwin (Andrew Dunstan)", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/028", "db_id": "f4e80b21d5f3019b09475b8c029a8968", "patch_ids": [], "statement_hash": "b1b7150d36e2116b85876d15b701e33fc9c8a8675aa75d8b3c0abf18ba34d14f", "relations": [], "version": "9.0.4", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "9.0.4-769acb5dc0aedba8", "cves": [], "html": "<p>Update time zone data files to <span>tzdata</span> release 2011f for DST law changes in Chile, Cuba, Falkland Islands, Morocco, Samoa, and Turkey; also historical corrections for South Australia, Alaska, and Hawaii.</p>", "text": "Update time zone data files to tzdata release 2011f for DST law changes in Chile, Cuba, Falkland Islands, Morocco, Samoa, and Turkey; also historical corrections for South Australia, Alaska, and Hawaii.", "title": "Update time zone data files to tzdata release 2011f for DST law changes in Chile, Cuba, Falkland Islands, Morocco, Samoa, and Turkey; also historical corrections for South Australia, Alaska, and Hawaii.", "commits": [], "section": "Changes", "category": "improvement", "source_url": "/docs/release/9.0.4/#AEN101862", "source_hash": "98ee97102389b6e247391cfda294d637234faac13615706d444e5a91349049a5", "section_path": ["Changes"], "commit_groups": [], "identity_text": "Update time zone data files to tzdata release 2011f for DST law changes in Chile, Cuba, Falkland Islands, Morocco, Samoa, and Turkey; also historical corrections for South Australia, Alaska, and Hawaii.", "commit_aliases": [], "source_commits": [], "source_entry_id": "9.0.4/changes/029", "db_id": "302e2571da954235705734850ff42ef5", "patch_ids": [], "statement_hash": "760bae1b2eb7fa504f70224a404551ef62f6fad32fa3bdff2951b014de01c8bf", "relations": [], "version": "9.0.4", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}]}], "stats": [{"key": "all", "label": "All changes", "count": 29}, {"key": "feature", "label": "Features", "count": 0}, {"key": "bugfix", "label": "Bug fixes", "count": 18}, {"key": "security", "label": "Security", "count": 0}, {"key": "performance", "label": "Performance", "count": 0}, {"key": "compatibility", "label": "Compatibility", "count": 0}, {"key": "improvement", "label": "Improvements", "count": 11}], "total": 29, "release_count": 1, "cross_major": false, "cve_count": 0, "cves": [], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 29, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}