{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2024-05-09", "build": "16.3", "major": "16", "minor": 3, "manual": "16", "status": "stable", "doc_git": "", "version": "16.3", "eol_date": "2028-11-09", "date_text": "2024-05-09", "supported": true, "manual_url": "/docs/16/release-16-3.html", "source_url": "/docs/release/16.3/", "entry_count": 57, "placeholder": false, "content_hash": "a4d3234a4a59630a121fb34f32a2fec5d474bb1eca142e1c96ab8c3d47db37ab", "manual_build": "16.15", "source_as_of": "", "changes_count": 57, "doc_loaded_at": "2026-09-25T02:22:44.760693", "migration_html": "<p>A dump/restore is not required for those running 16.X.</p>\n<p>However, a security vulnerability was found in the system views <code>pg_stats_ext</code> and <code>pg_stats_ext_exprs</code>, potentially allowing authenticated database users to see data they shouldn't. If this is of concern in your installation, follow the steps in the first changelog entry below to rectify it.</p>\n<p>Also, if you are upgrading from a version earlier than 16.2, see <a href=\"/docs/16/release-16-2.html\" title=\"E.14. Release 16.2\">Section E.14</a>.</p>", "compatibility_count": 0, "label": "16.3", "status_label": "Supported", "eol": "2028-11-09", "age_days": 873, "support_days": 772}, "groups": [{"date": "2024-05-09", "build": "16.3", "major": "16", "minor": 3, "manual": "16", "status": "stable", "doc_git": "", "version": "16.3", "eol_date": "2028-11-09", "date_text": "2024-05-09", "supported": true, "manual_url": "/docs/16/release-16-3.html", "source_url": "/docs/release/16.3/", "entry_count": 57, "placeholder": false, "content_hash": "a4d3234a4a59630a121fb34f32a2fec5d474bb1eca142e1c96ab8c3d47db37ab", "manual_build": "16.15", "source_as_of": "", "changes_count": 57, "doc_loaded_at": "2026-09-25T02:22:44.760693", "migration_html": "<p>A dump/restore is not required for those running 16.X.</p>\n<p>However, a security vulnerability was found in the system views <code>pg_stats_ext</code> and <code>pg_stats_ext_exprs</code>, potentially allowing authenticated database users to see data they shouldn't. If this is of concern in your installation, follow the steps in the first changelog entry below to rectify it.</p>\n<p>Also, if you are upgrading from a version earlier than 16.2, see <a href=\"/docs/16/release-16-2.html\" title=\"E.14. Release 16.2\">Section E.14</a>.</p>", "compatibility_count": 0, "label": "16.3", "status_label": "Supported", "eol": "2028-11-09", "age_days": 873, "support_days": 772, "entries": [{"id": "16.3-933035d2b392d978", "cves": ["CVE-2024-4317"], "html": "<p>Restrict visibility of <code>pg_stats_ext</code> and <code>pg_stats_ext_exprs</code> entries to the table owner (Nathan Bossart) <a href=\"https://postgr.es/c/2485a85e9\">§</a></p>\n<p>These views failed to hide statistics for expressions that involve columns the accessing user does not have permission to read. View columns such as <code>most_common_vals</code> might expose security-relevant data. The potential interactions here are not fully clear, so in the interest of erring on the side of safety, make rows in these views visible only to the owner of the associated table.</p>\n<p>The <span>PostgreSQL</span> Project thanks Lukas Fittl for reporting this problem. (CVE-2024-4317)</p>\n<p>By itself, this fix will only fix the behavior in newly initdb'd database clusters. If you wish to apply this change in an existing cluster, you will need to do the following:</p>\n<div>\n<ol type=\"1\">\n<li>\n<p>Find the SQL script <code>fix-CVE-2024-4317.sql</code> in the <em><code>share</code></em> directory of the <span>PostgreSQL</span> installation (typically located someplace like <code>/usr/share/postgresql/</code>). Be sure to use the script appropriate to your <span>PostgreSQL</span> major version. If you do not see this file, either your version is not vulnerable (only v14–v16 are affected) or your minor version is too old to have the fix.</p>\n</li>\n<li>\n<p>In <span><em>each</em></span> database of the cluster, run the <code>fix-CVE-2024-4317.sql</code> script as superuser. In <span>psql</span> this would look like</p>\n<pre>\\i /usr/share/postgresql/fix-CVE-2024-4317.sql\n</pre>\n<p>(adjust the file path as appropriate). Any error probably indicates that you've used the wrong script version. It will not hurt to run the script more than once.</p>\n</li>\n<li>\n<p>Do not forget to include the <code>template0</code> and <code>template1</code> databases, or the vulnerability will still exist in databases you create later. To fix <code>template0</code>, you'll need to temporarily make it accept connections. Do that with</p>\n<pre>ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true;\n</pre>\n<p>and then after fixing <code>template0</code>, undo it with</p>\n<pre>ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false;\n</pre>\n</li>\n</ol>\n</div>", "text": "Restrict visibility of pg_stats_ext and pg_stats_ext_exprs entries to the table owner (Nathan Bossart) § These views failed to hide statistics for expressions that involve columns the accessing user does not have permission to read. View columns such as most_common_vals might expose security-relevant data. The potential interactions here are not fully clear, so in the interest of erring on the side of safety, make rows in these views visible only to the owner of the associated table. The PostgreSQL Project thanks Lukas Fittl for reporting this problem. (CVE-2024-4317) By itself, this fix will only fix the behavior in newly initdb'd database clusters. If you wish to apply this change in an existing cluster, you will need to do the following: Find the SQL script fix-CVE-2024-4317.sql in the share directory of the PostgreSQL installation (typically located someplace like /usr/share/postgresql/). Be sure to use the script appropriate to your PostgreSQL major version. If you do not see this file, either your version is not vulnerable (only v14–v16 are affected) or your minor version is too old to have the fix. In each database of the cluster, run the fix-CVE-2024-4317.sql script as superuser. In psql this would look like \\i /usr/share/postgresql/fix-CVE-2024-4317.sql (adjust the file path as appropriate). Any error probably indicates that you've used the wrong script version. It will not hurt to run the script more than once. Do not forget to include the template0 and template1 databases, or the vulnerability will still exist in databases you create later. To fix template0, you'll need to temporarily make it accept connections. Do that with ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true; and then after fixing template0, undo it with ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false;", "title": "Restrict visibility of pg_stats_ext and pg_stats_ext_exprs entries to the table owner", "commits": ["2485a85e9"], "section": "Changes", "category": "security", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "339f7eb6d8399c341eb1657f15068fceef12e0bcbc43f70e866782f5aca78540", "section_path": ["Changes"], "commit_groups": [["2485a85e9", "521a7156a", "9cc2b6289", "c3425383b"]], "identity_text": "Restrict visibility of pg_stats_ext and pg_stats_ext_exprs entries to the table owner (Nathan Bossart) These views failed to hide statistics for expressions that involve columns the accessing user does not have permission to read. View columns such as most_common_vals might expose security-relevant data. The potential interactions here are not fully clear, so in the interest of erring on the side of safety, make rows in these views visible only to the owner of the associated table. The PostgreSQL Project thanks Lukas Fittl for reporting this problem. (CVE-2024-4317) By itself, this fix will only fix the behavior in newly initdb'd database clusters. If you wish to apply this change in an existing cluster, you will need to do the following: Find the SQL script fix-CVE-2024-4317.sql in the share directory of the PostgreSQL installation (typically located someplace like /usr/share/postgresql/). Be sure to use the script appropriate to your PostgreSQL major version. If you do not see this file, either your version is not vulnerable (only v14–v16 are affected) or your minor version is too old to have the fix. In each database of the cluster, run the fix-CVE-2024-4317.sql script as superuser. In psql this would look like \\i /usr/share/postgresql/fix-CVE-2024-4317.sql (adjust the file path as appropriate). Any error probably indicates that you've used the wrong script version. It will not hurt to run the script more than once. Do not forget to include the template0 and template1 databases, or the vulnerability will still exist in databases you create later. To fix template0, you'll need to temporarily make it accept connections. Do that with ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true; and then after fixing template0, undo it with ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false;", "commit_aliases": ["2485a85e9", "521a7156a", "9cc2b6289", "c3425383b"], "source_commits": ["2485a85e9"], "source_entry_id": "16.3/changes/001", "db_id": "b7aa0a955b482fd7c397bd9c8f57fad4", "patch_ids": ["6112a304723b494f198b6a84afff2476"], "statement_hash": "d9e2bc5f8099546e9c06073bb0b5853189d0d36a75b2ac4135b58882bf089ffe", "relations": [{"rule": 2, "type": "equivalent", "target": "84a8953b51412042ec07b0d78eece0e9", "evidence": {"same_day": true, "patch_ids": ["6112a304723b494f198b6a84afff2476"], "statement_hash": "d9e2bc5f8099546e9c06073bb0b5853189d0d36a75b2ac4135b58882bf089ffe"}}, {"rule": 2, "type": "equivalent", "target": "8aeaa5fcfd3b568f4c8890ce678a196d", "evidence": {"same_day": true, "patch_ids": ["6112a304723b494f198b6a84afff2476"], "statement_hash": "d9e2bc5f8099546e9c06073bb0b5853189d0d36a75b2ac4135b58882bf089ffe"}}], "version": "16.3", "category_label": "Security", "also_in": [], "variants": [], "related_changes": [{"db_id": "84a8953b51412042ec07b0d78eece0e9", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Restrict visibility of pg_stats_ext and pg_stats_ext_exprs entries to the table owner", "evidence": {"same_day": true, "patch_ids": ["6112a304723b494f198b6a84afff2476"], "statement_hash": "d9e2bc5f8099546e9c06073bb0b5853189d0d36a75b2ac4135b58882bf089ffe"}, "url": "/docs/compare/?release=15.7#15.7-5c75daeed485b1fc", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "8aeaa5fcfd3b568f4c8890ce678a196d", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Restrict visibility of pg_stats_ext and pg_stats_ext_exprs entries to the table owner", "evidence": {"same_day": true, "patch_ids": ["6112a304723b494f198b6a84afff2476"], "statement_hash": "d9e2bc5f8099546e9c06073bb0b5853189d0d36a75b2ac4135b58882bf089ffe"}, "url": "/docs/compare/?release=14.12#14.12-8bc43ac4b7f05ccd", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}]}, {"id": "16.3-544aa5578d1043f9", "cves": [], "html": "<p>Fix <code>INSERT</code> from multiple <code>VALUES</code> rows into a target column that is a domain over an array or composite type (Tom Lane) <a href=\"https://postgr.es/c/52898c63e\">§</a></p>\n<p>Such cases would either fail with surprising complaints about mismatched datatypes, or insert unexpected coercions that could lead to odd results.</p>", "text": "Fix INSERT from multiple VALUES rows into a target column that is a domain over an array or composite type (Tom Lane) § Such cases would either fail with surprising complaints about mismatched datatypes, or insert unexpected coercions that could lead to odd results.", "title": "Fix INSERT from multiple VALUES rows into a target column that is a domain over an array or composite type", "commits": ["52898c63e"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "ff286b7f90604f1fd1604f9b776b77b4d57c3f2cf28d585ddbeda571876742c7", "section_path": ["Changes"], "commit_groups": [["0200398dd", "3621ffd9f", "52898c63e", "7c61d2342", "82c87af7a", "b4a71cf65"]], "identity_text": "Fix INSERT from multiple VALUES rows into a target column that is a domain over an array or composite type (Tom Lane) Such cases would either fail with surprising complaints about mismatched datatypes, or insert unexpected coercions that could lead to odd results.", "commit_aliases": ["0200398dd", "3621ffd9f", "52898c63e", "7c61d2342", "82c87af7a", "b4a71cf65"], "source_commits": ["52898c63e"], "source_entry_id": "16.3/changes/002", "db_id": "2e9ef20c90089aeec3983b9a721fdae0", "patch_ids": ["cdb6ab46aa62a9bbd30ab60cc0ddcf35"], "statement_hash": "6e9f17dfdc85a35829ec9888fc4ded415bb599f998d4093e76c9a9e279644a4e", "relations": [{"rule": 2, "type": "equivalent", "target": "6caa1c3d45d32ad75defa51d23487ce7", "evidence": {"same_day": true, "patch_ids": ["cdb6ab46aa62a9bbd30ab60cc0ddcf35"], "statement_hash": "6e9f17dfdc85a35829ec9888fc4ded415bb599f998d4093e76c9a9e279644a4e"}}, {"rule": 2, "type": "equivalent", "target": "785ca9c7fc24a36b5111b0700e489e7a", "evidence": {"same_day": true, "patch_ids": ["cdb6ab46aa62a9bbd30ab60cc0ddcf35"], "statement_hash": "6e9f17dfdc85a35829ec9888fc4ded415bb599f998d4093e76c9a9e279644a4e"}}, {"rule": 2, "type": "equivalent", "target": "9572f8110ded2a8d7803e002d11d40b0", "evidence": {"same_day": true, "patch_ids": ["cdb6ab46aa62a9bbd30ab60cc0ddcf35"], "statement_hash": "6e9f17dfdc85a35829ec9888fc4ded415bb599f998d4093e76c9a9e279644a4e"}}, {"rule": 2, "type": "equivalent", "target": "e47bd53c9d8fac9564005be446d56944", "evidence": {"same_day": true, "patch_ids": ["cdb6ab46aa62a9bbd30ab60cc0ddcf35"], "statement_hash": "6e9f17dfdc85a35829ec9888fc4ded415bb599f998d4093e76c9a9e279644a4e"}}], "version": "16.3", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "9572f8110ded2a8d7803e002d11d40b0", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Fix INSERT from multiple VALUES rows into a target column that is a domain over an array or composite type", "evidence": {"same_day": true, "patch_ids": ["cdb6ab46aa62a9bbd30ab60cc0ddcf35"], "statement_hash": "6e9f17dfdc85a35829ec9888fc4ded415bb599f998d4093e76c9a9e279644a4e"}, "url": "/docs/compare/?release=15.7#15.7-dd89857090ed0e99", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "6caa1c3d45d32ad75defa51d23487ce7", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Fix INSERT from multiple VALUES rows into a target column that is a domain over an array or composite type", "evidence": {"same_day": true, "patch_ids": ["cdb6ab46aa62a9bbd30ab60cc0ddcf35"], "statement_hash": "6e9f17dfdc85a35829ec9888fc4ded415bb599f998d4093e76c9a9e279644a4e"}, "url": "/docs/compare/?release=14.12#14.12-a3754239b6836d9c", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "e47bd53c9d8fac9564005be446d56944", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "Fix INSERT from multiple VALUES rows into a target column that is a domain over an array or composite type", "evidence": {"same_day": true, "patch_ids": ["cdb6ab46aa62a9bbd30ab60cc0ddcf35"], "statement_hash": "6e9f17dfdc85a35829ec9888fc4ded415bb599f998d4093e76c9a9e279644a4e"}, "url": "/docs/compare/?release=13.15#13.15-6e8813730e378dc5", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "785ca9c7fc24a36b5111b0700e489e7a", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "Fix INSERT from multiple VALUES rows into a target column that is a domain over an array or composite type", "evidence": {"same_day": true, "patch_ids": ["cdb6ab46aa62a9bbd30ab60cc0ddcf35"], "statement_hash": "6e9f17dfdc85a35829ec9888fc4ded415bb599f998d4093e76c9a9e279644a4e"}, "url": "/docs/compare/?release=12.19#12.19-ec2b64a5851f8b06", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-432b931f8c9cb2e0", "cves": [], "html": "<p>Require <code>SELECT</code> privilege on the target table for <code>MERGE</code> with a <code>DO NOTHING</code> clause (Álvaro Herrera) <a href=\"https://postgr.es/c/a3f5d2056\">§</a></p>\n<p><code>SELECT</code> privilege would be required in all practical cases anyway, but require it even if the query reads no columns of the target table. This avoids an edge case in which <code>MERGE</code> would require no privileges whatever, which seems undesirable even when it's a do-nothing command.</p>", "text": "Require SELECT privilege on the target table for MERGE with a DO NOTHING clause (Álvaro Herrera) § SELECT privilege would be required in all practical cases anyway, but require it even if the query reads no columns of the target table. This avoids an edge case in which MERGE would require no privileges whatever, which seems undesirable even when it's a do-nothing command.", "title": "Require SELECT privilege on the target table for MERGE with a DO NOTHING clause", "commits": ["a3f5d2056"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "05b94f342abee76f61053a184836358ff6cd892183fee97ec3da5d6bb33f99ae", "section_path": ["Changes"], "commit_groups": [["4989ce726", "90ad85db6", "a3f5d2056"]], "identity_text": "Require SELECT privilege on the target table for MERGE with a DO NOTHING clause (Álvaro Herrera) SELECT privilege would be required in all practical cases anyway, but require it even if the query reads no columns of the target table. This avoids an edge case in which MERGE would require no privileges whatever, which seems undesirable even when it's a do-nothing command.", "commit_aliases": ["4989ce726", "90ad85db6", "a3f5d2056"], "source_commits": ["a3f5d2056"], "source_entry_id": "16.3/changes/003", "db_id": "450596be3bd04cd0a1cb71ed2f497f9b", "patch_ids": ["886aec5de95b79e1a8f9c6440c151364"], "statement_hash": "efbf92be0f9b25eb21bbfe5a3e92865d80c193c74a720a4294dd737932493484", "relations": [{"rule": 2, "type": "equivalent", "target": "c135686f7de13523292a84ad3358ed67", "evidence": {"same_day": true, "patch_ids": ["886aec5de95b79e1a8f9c6440c151364"], "statement_hash": "efbf92be0f9b25eb21bbfe5a3e92865d80c193c74a720a4294dd737932493484"}}], "version": "16.3", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "c135686f7de13523292a84ad3358ed67", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Require SELECT privilege on the target table for MERGE with a DO NOTHING clause", "evidence": {"same_day": true, "patch_ids": ["886aec5de95b79e1a8f9c6440c151364"], "statement_hash": "efbf92be0f9b25eb21bbfe5a3e92865d80c193c74a720a4294dd737932493484"}, "url": "/docs/compare/?release=15.7#15.7-da6e4af9965c94b4", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}]}, {"id": "16.3-fcd9d541fb9cc705", "cves": [], "html": "<p>Fix handling of self-modified tuples in <code>MERGE</code> (Dean Rasheed) <a href=\"https://postgr.es/c/dd73d10ad\">§</a></p>\n<p>Throw an error if a target row joins to more than one source row, as required by the SQL standard. (The previous coding could silently ignore this condition if a concurrent update was involved.) Also, throw a non-misleading error if a target row is already updated by a later command in the current transaction, thanks to a <code>BEFORE</code> trigger or a volatile function used in the query.</p>", "text": "Fix handling of self-modified tuples in MERGE (Dean Rasheed) § Throw an error if a target row joins to more than one source row, as required by the SQL standard. (The previous coding could silently ignore this condition if a concurrent update was involved.) Also, throw a non-misleading error if a target row is already updated by a later command in the current transaction, thanks to a BEFORE trigger or a volatile function used in the query.", "title": "Fix handling of self-modified tuples in MERGE", "commits": ["dd73d10ad"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "be8300b9db59ce59241e56280a24cb6e7e032cf76828a3c1b09a42e93c0d03d2", "section_path": ["Changes"], "commit_groups": [["29ef1dd19", "b5c645d2a", "dd73d10ad"]], "identity_text": "Fix handling of self-modified tuples in MERGE (Dean Rasheed) Throw an error if a target row joins to more than one source row, as required by the SQL standard. (The previous coding could silently ignore this condition if a concurrent update was involved.) Also, throw a non-misleading error if a target row is already updated by a later command in the current transaction, thanks to a BEFORE trigger or a volatile function used in the query.", "commit_aliases": ["29ef1dd19", "b5c645d2a", "dd73d10ad"], "source_commits": ["dd73d10ad"], "source_entry_id": "16.3/changes/004", "db_id": "e006280aed6391a9161ac0519b24bdd3", "patch_ids": ["8bbdd07738f409f97607565aa4c5dd98"], "statement_hash": "f6b13dc66d404ac05176baa1adf7632d11aff11091df21a1569ee62af88a16cb", "relations": [{"rule": 2, "type": "equivalent", "target": "bda335ede07f3a467d7903ac22792872", "evidence": {"same_day": true, "patch_ids": ["8bbdd07738f409f97607565aa4c5dd98"], "statement_hash": "f6b13dc66d404ac05176baa1adf7632d11aff11091df21a1569ee62af88a16cb"}}], "version": "16.3", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "bda335ede07f3a467d7903ac22792872", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Fix handling of self-modified tuples in MERGE", "evidence": {"same_day": true, "patch_ids": ["8bbdd07738f409f97607565aa4c5dd98"], "statement_hash": "f6b13dc66d404ac05176baa1adf7632d11aff11091df21a1569ee62af88a16cb"}, "url": "/docs/compare/?release=15.7#15.7-5854279a6ef46025", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}]}, {"id": "16.3-b98f74061eb703b1", "cves": [], "html": "<p>Fix incorrect pruning of NULL partition when a table is partitioned on a boolean column and the query has a boolean <code>IS NOT</code> clause (David Rowley) <a href=\"https://postgr.es/c/fb95cc72b\">§</a></p>\n<p>A NULL value satisfies a clause such as <code><em><code>boolcol</code></em> IS NOT FALSE</code>, so pruning away a partition containing NULLs yielded incorrect answers.</p>", "text": "Fix incorrect pruning of NULL partition when a table is partitioned on a boolean column and the query has a boolean IS NOT clause (David Rowley) § A NULL value satisfies a clause such as boolcol IS NOT FALSE, so pruning away a partition containing NULLs yielded incorrect answers.", "title": "Fix incorrect pruning of NULL partition when a table is partitioned on a boolean column and the query has a boolean IS NOT clause", "commits": ["fb95cc72b"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "14973ad6b5e913e71305ba1f64c643db40f526c2a44433e3054e7b8a923b6579", "section_path": ["Changes"], "commit_groups": [["1b3495e29", "3850fcca6", "3ffcd24c2", "4c2369ac5", "f9c8f7ccd", "fb95cc72b"]], "identity_text": "Fix incorrect pruning of NULL partition when a table is partitioned on a boolean column and the query has a boolean IS NOT clause (David Rowley) A NULL value satisfies a clause such as boolcol IS NOT FALSE, so pruning away a partition containing NULLs yielded incorrect answers.", "commit_aliases": ["1b3495e29", "3850fcca6", "3ffcd24c2", "4c2369ac5", "f9c8f7ccd", "fb95cc72b"], "source_commits": ["fb95cc72b"], "source_entry_id": "16.3/changes/005", "db_id": "08fddef803675f53f6ab18fcd1a67874", "patch_ids": ["f5f46bead2aebdd47bd987c32512dfda"], "statement_hash": "882de4bddb9af492ab5ca16d3da868179f0a0be6b9bad088175ce8d0781143d0", "relations": [{"rule": 2, "type": "equivalent", "target": "40cf15bbd1e4575dd686e322afac06bb", "evidence": {"same_day": true, "patch_ids": ["f5f46bead2aebdd47bd987c32512dfda"], "statement_hash": "882de4bddb9af492ab5ca16d3da868179f0a0be6b9bad088175ce8d0781143d0"}}, {"rule": 2, "type": "equivalent", "target": "b91de14004a5f3f7b37a602664a2346e", "evidence": {"same_day": true, "patch_ids": ["f5f46bead2aebdd47bd987c32512dfda"], "statement_hash": "882de4bddb9af492ab5ca16d3da868179f0a0be6b9bad088175ce8d0781143d0"}}, {"rule": 2, "type": "equivalent", "target": "cc683f011aab64292afebeb3e3e9850c", "evidence": {"same_day": true, "patch_ids": ["f5f46bead2aebdd47bd987c32512dfda"], "statement_hash": "882de4bddb9af492ab5ca16d3da868179f0a0be6b9bad088175ce8d0781143d0"}}, {"rule": 2, "type": "equivalent", "target": "fe409d3dafe4377bcd95a6e1456b7ae8", "evidence": {"same_day": true, "patch_ids": ["f5f46bead2aebdd47bd987c32512dfda"], "statement_hash": "882de4bddb9af492ab5ca16d3da868179f0a0be6b9bad088175ce8d0781143d0"}}], "version": "16.3", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "cc683f011aab64292afebeb3e3e9850c", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Fix incorrect pruning of NULL partition when a table is partitioned on a boolean column and the query has a boolean IS NOT clause", "evidence": {"same_day": true, "patch_ids": ["f5f46bead2aebdd47bd987c32512dfda"], "statement_hash": "882de4bddb9af492ab5ca16d3da868179f0a0be6b9bad088175ce8d0781143d0"}, "url": "/docs/compare/?release=15.7#15.7-d93dc420de3341d7", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "fe409d3dafe4377bcd95a6e1456b7ae8", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Fix incorrect pruning of NULL partition when a table is partitioned on a boolean column and the query has a boolean IS NOT clause", "evidence": {"same_day": true, "patch_ids": ["f5f46bead2aebdd47bd987c32512dfda"], "statement_hash": "882de4bddb9af492ab5ca16d3da868179f0a0be6b9bad088175ce8d0781143d0"}, "url": "/docs/compare/?release=14.12#14.12-76ebf9d45748b41f", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "40cf15bbd1e4575dd686e322afac06bb", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "Fix incorrect pruning of NULL partition when a table is partitioned on a boolean column and the query has a boolean IS NOT clause", "evidence": {"same_day": true, "patch_ids": ["f5f46bead2aebdd47bd987c32512dfda"], "statement_hash": "882de4bddb9af492ab5ca16d3da868179f0a0be6b9bad088175ce8d0781143d0"}, "url": "/docs/compare/?release=13.15#13.15-256b603ee7dfe7c4", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "b91de14004a5f3f7b37a602664a2346e", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "Fix incorrect pruning of NULL partition when a table is partitioned on a boolean column and the query has a boolean IS NOT clause", "evidence": {"same_day": true, "patch_ids": ["f5f46bead2aebdd47bd987c32512dfda"], "statement_hash": "882de4bddb9af492ab5ca16d3da868179f0a0be6b9bad088175ce8d0781143d0"}, "url": "/docs/compare/?release=12.19#12.19-171cac36b8b103da", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-730b9768abe0a66f", "cves": [], "html": "<p>Make <code>ALTER FOREIGN TABLE SET SCHEMA</code> move any owned sequences into the new schema (Tom Lane) <a href=\"https://postgr.es/c/7445f0928\">§</a></p>\n<p>Moving a regular table to a new schema causes any sequences owned by the table to be moved to that schema too (along with indexes and constraints). This was overlooked for foreign tables, however.</p>", "text": "Make ALTER FOREIGN TABLE SET SCHEMA move any owned sequences into the new schema (Tom Lane) § Moving a regular table to a new schema causes any sequences owned by the table to be moved to that schema too (along with indexes and constraints). This was overlooked for foreign tables, however.", "title": "Make ALTER FOREIGN TABLE SET SCHEMA move any owned sequences into the new schema", "commits": ["7445f0928"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "6600978ed3adc2894b5b2df2e9daf605487138ec2f1d1372021ae47515527999", "section_path": ["Changes"], "commit_groups": [["66bbad581", "7445f0928", "97de2a159", "a8b740868", "b48eda4e5", "fad3b5b5a"]], "identity_text": "Make ALTER FOREIGN TABLE SET SCHEMA move any owned sequences into the new schema (Tom Lane) Moving a regular table to a new schema causes any sequences owned by the table to be moved to that schema too (along with indexes and constraints). This was overlooked for foreign tables, however.", "commit_aliases": ["66bbad581", "7445f0928", "97de2a159", "a8b740868", "b48eda4e5", "fad3b5b5a"], "source_commits": ["7445f0928"], "source_entry_id": "16.3/changes/006", "db_id": "f590d69638ed5977544b4db5bcbfa763", "patch_ids": ["1d077f81ea4cbc46d677a20d04794bdb"], "statement_hash": "0088b99fffb5c75a1b4ae3139470bf9ebc5569d3f048b2b712806fb28b0efde0", "relations": [{"rule": 2, "type": "equivalent", "target": "48b7ba94dd733c6edc7495dbc1492c04", "evidence": {"same_day": true, "patch_ids": ["1d077f81ea4cbc46d677a20d04794bdb"], "statement_hash": "0088b99fffb5c75a1b4ae3139470bf9ebc5569d3f048b2b712806fb28b0efde0"}}, {"rule": 2, "type": "equivalent", "target": "4be5419bd6b46edb6f7272280c3e507a", "evidence": {"same_day": true, "patch_ids": ["1d077f81ea4cbc46d677a20d04794bdb"], "statement_hash": "0088b99fffb5c75a1b4ae3139470bf9ebc5569d3f048b2b712806fb28b0efde0"}}, {"rule": 2, "type": "equivalent", "target": "769cae3d725b2bea33af3671538742b9", "evidence": {"same_day": true, "patch_ids": ["1d077f81ea4cbc46d677a20d04794bdb"], "statement_hash": "0088b99fffb5c75a1b4ae3139470bf9ebc5569d3f048b2b712806fb28b0efde0"}}, {"rule": 2, "type": "equivalent", "target": "dba8e3cd638b09b5c3afb8d28ba19920", "evidence": {"same_day": true, "patch_ids": ["1d077f81ea4cbc46d677a20d04794bdb"], "statement_hash": "0088b99fffb5c75a1b4ae3139470bf9ebc5569d3f048b2b712806fb28b0efde0"}}], "version": "16.3", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "769cae3d725b2bea33af3671538742b9", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Make ALTER FOREIGN TABLE SET SCHEMA move any owned sequences into the new schema", "evidence": {"same_day": true, "patch_ids": ["1d077f81ea4cbc46d677a20d04794bdb"], "statement_hash": "0088b99fffb5c75a1b4ae3139470bf9ebc5569d3f048b2b712806fb28b0efde0"}, "url": "/docs/compare/?release=15.7#15.7-200c122f1723193b", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "4be5419bd6b46edb6f7272280c3e507a", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Make ALTER FOREIGN TABLE SET SCHEMA move any owned sequences into the new schema", "evidence": {"same_day": true, "patch_ids": ["1d077f81ea4cbc46d677a20d04794bdb"], "statement_hash": "0088b99fffb5c75a1b4ae3139470bf9ebc5569d3f048b2b712806fb28b0efde0"}, "url": "/docs/compare/?release=14.12#14.12-193dd46beec02441", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "dba8e3cd638b09b5c3afb8d28ba19920", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "Make ALTER FOREIGN TABLE SET SCHEMA move any owned sequences into the new schema", "evidence": {"same_day": true, "patch_ids": ["1d077f81ea4cbc46d677a20d04794bdb"], "statement_hash": "0088b99fffb5c75a1b4ae3139470bf9ebc5569d3f048b2b712806fb28b0efde0"}, "url": "/docs/compare/?release=13.15#13.15-c22ecbe930e84c47", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "48b7ba94dd733c6edc7495dbc1492c04", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "Make ALTER FOREIGN TABLE SET SCHEMA move any owned sequences into the new schema", "evidence": {"same_day": true, "patch_ids": ["1d077f81ea4cbc46d677a20d04794bdb"], "statement_hash": "0088b99fffb5c75a1b4ae3139470bf9ebc5569d3f048b2b712806fb28b0efde0"}, "url": "/docs/compare/?release=12.19#12.19-baa828f55b63c4ce", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-c6a3719eb1550bb4", "cves": [], "html": "<p>Make <code>ALTER TABLE ... ADD COLUMN</code> create identity/serial sequences with the same persistence as their owning tables (Peter Eisentraut) <a href=\"https://postgr.es/c/86d2b434c\">§</a></p>\n<p><code>CREATE UNLOGGED TABLE</code> will make any owned sequences be unlogged too. <code>ALTER TABLE</code> missed that consideration, so that an added identity column would have a logged sequence, which seems pointless.</p>", "text": "Make ALTER TABLE ... ADD COLUMN create identity/serial sequences with the same persistence as their owning tables (Peter Eisentraut) § CREATE UNLOGGED TABLE will make any owned sequences be unlogged too. ALTER TABLE missed that consideration, so that an added identity column would have a logged sequence, which seems pointless.", "title": "Make ALTER TABLE ... ADD COLUMN create identity/serial sequences with the same persistence as their owning tables", "commits": ["86d2b434c"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "d53695206e55d0d7eeda836de3c81af6231d83a42c5ea11a73e4c803775bf9fd", "section_path": ["Changes"], "commit_groups": [["6743c5ae6", "86d2b434c", "d17a3a4c6"]], "identity_text": "Make ALTER TABLE ... ADD COLUMN create identity/serial sequences with the same persistence as their owning tables (Peter Eisentraut) CREATE UNLOGGED TABLE will make any owned sequences be unlogged too. ALTER TABLE missed that consideration, so that an added identity column would have a logged sequence, which seems pointless.", "commit_aliases": ["6743c5ae6", "86d2b434c", "d17a3a4c6"], "source_commits": ["86d2b434c"], "source_entry_id": "16.3/changes/007", "db_id": "d56b89a58d04060d81ad01e869df5f12", "patch_ids": ["df06fa817a43a06ef1ede6b7c8b81a24"], "statement_hash": "d49ab48c6326f764be1e41f4fca2b7115db7407832e18aa857ae0b335e5f8fa9", "relations": [{"rule": 2, "type": "equivalent", "target": "65769f4bf1837e3deef300df99a8d77e", "evidence": {"same_day": true, "patch_ids": ["df06fa817a43a06ef1ede6b7c8b81a24"], "statement_hash": "d49ab48c6326f764be1e41f4fca2b7115db7407832e18aa857ae0b335e5f8fa9"}}], "version": "16.3", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "65769f4bf1837e3deef300df99a8d77e", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Make ALTER TABLE ... ADD COLUMN create identity/serial sequences with the same persistence as their owning tables", "evidence": {"same_day": true, "patch_ids": ["df06fa817a43a06ef1ede6b7c8b81a24"], "statement_hash": "d49ab48c6326f764be1e41f4fca2b7115db7407832e18aa857ae0b335e5f8fa9"}, "url": "/docs/compare/?release=15.7#15.7-1674e6a71aeb43ec", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}]}, {"id": "16.3-7f6e002db2c9c433", "cves": [], "html": "<p>Improve <code>ALTER TABLE ... ALTER COLUMN TYPE</code>'s error message when there is a dependent function or publication (Tom Lane) <a href=\"https://postgr.es/c/11d40a44b\">§</a> <a href=\"https://postgr.es/c/b19255ca6\">§</a></p>", "text": "Improve ALTER TABLE ... ALTER COLUMN TYPE's error message when there is a dependent function or publication (Tom Lane) § §", "title": "Improve ALTER TABLE ... ALTER COLUMN TYPE's error message when there is a dependent function or publication", "commits": ["11d40a44b", "b19255ca6"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "ad861ec71b5a2e4b754df63dbe24d77a937b682b46e266c0cfc2ccdbacf22965", "section_path": ["Changes"], "commit_groups": [["11d40a44b", "5f4a1a0a7", "91e7115b1"], ["42b041243", "617a23927", "9b41d1d63", "b19255ca6"]], "identity_text": "Improve ALTER TABLE ... ALTER COLUMN TYPE's error message when there is a dependent function or publication (Tom Lane)", "commit_aliases": ["11d40a44b", "42b041243", "5f4a1a0a7", "617a23927", "91e7115b1", "9b41d1d63", "b19255ca6"], "source_commits": ["11d40a44b", "b19255ca6"], "source_entry_id": "16.3/changes/008", "db_id": "c877a1a4507fb7e4229ef2443979f14c", "patch_ids": ["11963ca629d1711f9e0aa5009f9bd3f3", "2b38fd6d4730d8bf1e24faccbb9f7d86"], "statement_hash": "086b4a3824530f7df113a2ca0a2718bcefcf101f0770077deaaa640fafd3189c", "relations": [{"rule": 2, "type": "equivalent", "target": "20a595d91e64d219ea46dcff505ca264", "evidence": {"same_day": true, "patch_ids": ["11963ca629d1711f9e0aa5009f9bd3f3", "2b38fd6d4730d8bf1e24faccbb9f7d86"], "statement_hash": "086b4a3824530f7df113a2ca0a2718bcefcf101f0770077deaaa640fafd3189c"}}, {"rule": 2, "type": "equivalent", "target": "345bf2f91ccbfadd199e3c5e645d7ca5", "evidence": {"same_day": true, "patch_ids": ["11963ca629d1711f9e0aa5009f9bd3f3", "2b38fd6d4730d8bf1e24faccbb9f7d86"], "statement_hash": "086b4a3824530f7df113a2ca0a2718bcefcf101f0770077deaaa640fafd3189c"}}], "version": "16.3", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "20a595d91e64d219ea46dcff505ca264", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Improve ALTER TABLE ... ALTER COLUMN TYPE's error message when there is a dependent function or publication", "evidence": {"same_day": true, "patch_ids": ["11963ca629d1711f9e0aa5009f9bd3f3", "2b38fd6d4730d8bf1e24faccbb9f7d86"], "statement_hash": "086b4a3824530f7df113a2ca0a2718bcefcf101f0770077deaaa640fafd3189c"}, "url": "/docs/compare/?release=15.7#15.7-1076dd4fb781cc5e", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "345bf2f91ccbfadd199e3c5e645d7ca5", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Improve ALTER TABLE ... ALTER COLUMN TYPE's error message when there is a dependent function or publication", "evidence": {"same_day": true, "patch_ids": ["11963ca629d1711f9e0aa5009f9bd3f3", "2b38fd6d4730d8bf1e24faccbb9f7d86"], "statement_hash": "086b4a3824530f7df113a2ca0a2718bcefcf101f0770077deaaa640fafd3189c"}, "url": "/docs/compare/?release=14.12#14.12-f1369013a84cd195", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}]}, {"id": "16.3-24e29400e27c33c3", "cves": [], "html": "<p>In <code>CREATE DATABASE</code>, recognize strategy keywords case-insensitively for consistency with other options (Tomas Vondra) <a href=\"https://postgr.es/c/9e6faeb32\">§</a></p>", "text": "In CREATE DATABASE, recognize strategy keywords case-insensitively for consistency with other options (Tomas Vondra) §", "title": "In CREATE DATABASE, recognize strategy keywords case-insensitively for consistency with other options", "commits": ["9e6faeb32"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "358840f077059f99d2e8e7c9f5c5a8503786f749d71ffdb211f0325e8a17f6bc", "section_path": ["Changes"], "commit_groups": [["276b7888f", "8c239ee15", "9e6faeb32"]], "identity_text": "In CREATE DATABASE, recognize strategy keywords case-insensitively for consistency with other options (Tomas Vondra)", "commit_aliases": ["276b7888f", "8c239ee15", "9e6faeb32"], "source_commits": ["9e6faeb32"], "source_entry_id": "16.3/changes/009", "db_id": "0031aa7e16fa49735ad74aed96996ccd", "patch_ids": ["9a873a9c61d5bf9de79b86795971e3fa"], "statement_hash": "975a1df5b3e57f85e1e4f019c9961515553a8b0468e23bf8ebd35c67374cd824", "relations": [{"rule": 2, "type": "equivalent", "target": "91cdf1b956fac8893d38b8fec0c4de8c", "evidence": {"same_day": true, "patch_ids": ["9a873a9c61d5bf9de79b86795971e3fa"], "statement_hash": "975a1df5b3e57f85e1e4f019c9961515553a8b0468e23bf8ebd35c67374cd824"}}], "version": "16.3", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "91cdf1b956fac8893d38b8fec0c4de8c", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "In CREATE DATABASE, recognize strategy keywords case-insensitively for consistency with other options", "evidence": {"same_day": true, "patch_ids": ["9a873a9c61d5bf9de79b86795971e3fa"], "statement_hash": "975a1df5b3e57f85e1e4f019c9961515553a8b0468e23bf8ebd35c67374cd824"}, "url": "/docs/compare/?release=15.7#15.7-51cc3011853d6ac0", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}]}, {"id": "16.3-f9fbf726e413d526", "cves": [], "html": "<p>Fix <code>EXPLAIN</code>'s counting of heap pages accessed by a bitmap heap scan (Melanie Plageman) <a href=\"https://postgr.es/c/1f4eb7342\">§</a></p>\n<p>Previously, heap pages that contain no visible tuples were not counted; but it seems more consistent to count all pages returned by the bitmap index scan.</p>", "text": "Fix EXPLAIN's counting of heap pages accessed by a bitmap heap scan (Melanie Plageman) § Previously, heap pages that contain no visible tuples were not counted; but it seems more consistent to count all pages returned by the bitmap index scan.", "title": "Fix EXPLAIN's counting of heap pages accessed by a bitmap heap scan", "commits": ["1f4eb7342"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "50dd33ec8b56a37d5677f438dd681477fa5a0d55ae0e9da6c256ff88cfee19ac", "section_path": ["Changes"], "commit_groups": [["0960ae196", "1f4eb7342", "262757b73", "992189a3e", "d3d95f583", "f3e4581ac"]], "identity_text": "Fix EXPLAIN's counting of heap pages accessed by a bitmap heap scan (Melanie Plageman) Previously, heap pages that contain no visible tuples were not counted; but it seems more consistent to count all pages returned by the bitmap index scan.", "commit_aliases": ["0960ae196", "1f4eb7342", "262757b73", "992189a3e", "d3d95f583", "f3e4581ac"], "source_commits": ["1f4eb7342"], "source_entry_id": "16.3/changes/010", "db_id": "1e131317b75bec3af2685bf463b52c95", "patch_ids": ["38a905362c03da47f01e91aea4e43bae"], "statement_hash": "9f50326b7139da9904c367787a6e3cc510e5592a1999bd2ef9efea052016d365", "relations": [{"rule": 2, "type": "equivalent", "target": "55b97633d2336c4182f273c534c4403c", "evidence": {"same_day": true, "patch_ids": ["38a905362c03da47f01e91aea4e43bae"], "statement_hash": "9f50326b7139da9904c367787a6e3cc510e5592a1999bd2ef9efea052016d365"}}, {"rule": 2, "type": "equivalent", "target": "5d8b1aeb779ca0047404aae006b5aff8", "evidence": {"same_day": true, "patch_ids": ["38a905362c03da47f01e91aea4e43bae"], "statement_hash": "9f50326b7139da9904c367787a6e3cc510e5592a1999bd2ef9efea052016d365"}}, {"rule": 2, "type": "equivalent", "target": "a6781eb095c0575e3926a5f509629f7e", "evidence": {"same_day": true, "patch_ids": ["38a905362c03da47f01e91aea4e43bae"], "statement_hash": "9f50326b7139da9904c367787a6e3cc510e5592a1999bd2ef9efea052016d365"}}, {"rule": 2, "type": "equivalent", "target": "e29ae7de221052c247dd975fc7572378", "evidence": {"same_day": true, "patch_ids": ["38a905362c03da47f01e91aea4e43bae"], "statement_hash": "9f50326b7139da9904c367787a6e3cc510e5592a1999bd2ef9efea052016d365"}}], "version": "16.3", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "5d8b1aeb779ca0047404aae006b5aff8", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Fix EXPLAIN's counting of heap pages accessed by a bitmap heap scan", "evidence": {"same_day": true, "patch_ids": ["38a905362c03da47f01e91aea4e43bae"], "statement_hash": "9f50326b7139da9904c367787a6e3cc510e5592a1999bd2ef9efea052016d365"}, "url": "/docs/compare/?release=15.7#15.7-8542c116b2fb8276", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "55b97633d2336c4182f273c534c4403c", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Fix EXPLAIN's counting of heap pages accessed by a bitmap heap scan", "evidence": {"same_day": true, "patch_ids": ["38a905362c03da47f01e91aea4e43bae"], "statement_hash": "9f50326b7139da9904c367787a6e3cc510e5592a1999bd2ef9efea052016d365"}, "url": "/docs/compare/?release=14.12#14.12-9ac1a0bebef1e748", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "e29ae7de221052c247dd975fc7572378", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "Fix EXPLAIN's counting of heap pages accessed by a bitmap heap scan", "evidence": {"same_day": true, "patch_ids": ["38a905362c03da47f01e91aea4e43bae"], "statement_hash": "9f50326b7139da9904c367787a6e3cc510e5592a1999bd2ef9efea052016d365"}, "url": "/docs/compare/?release=13.15#13.15-b577df214260669a", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "a6781eb095c0575e3926a5f509629f7e", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "Fix EXPLAIN's counting of heap pages accessed by a bitmap heap scan", "evidence": {"same_day": true, "patch_ids": ["38a905362c03da47f01e91aea4e43bae"], "statement_hash": "9f50326b7139da9904c367787a6e3cc510e5592a1999bd2ef9efea052016d365"}, "url": "/docs/compare/?release=12.19#12.19-3d95a4f1e9bda0ed", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-ed9ab561b9146d93", "cves": [], "html": "<p>Fix <code>EXPLAIN</code>'s output for subplans in <code>MERGE</code> (Dean Rasheed) <a href=\"https://postgr.es/c/34c854b93\">§</a></p>\n<p><code>EXPLAIN</code> would sometimes fail to properly display subplan Params referencing variables in other parts of the plan tree.</p>", "text": "Fix EXPLAIN's output for subplans in MERGE (Dean Rasheed) § EXPLAIN would sometimes fail to properly display subplan Params referencing variables in other parts of the plan tree.", "title": "Fix EXPLAIN's output for subplans in MERGE", "commits": ["34c854b93"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "553ca5f78254c7c0dd809c2dff0b8d67dbc6b2dbb1c707191f93a08ea9da120a", "section_path": ["Changes"], "commit_groups": [["33e729c51", "34c854b93", "89ee14a2f"]], "identity_text": "Fix EXPLAIN's output for subplans in MERGE (Dean Rasheed) EXPLAIN would sometimes fail to properly display subplan Params referencing variables in other parts of the plan tree.", "commit_aliases": ["33e729c51", "34c854b93", "89ee14a2f"], "source_commits": ["34c854b93"], "source_entry_id": "16.3/changes/011", "db_id": "6c73a135ff93ad0a276ecb0e6da44eea", "patch_ids": ["46a600e26e5824cb2b13e1186a752671"], "statement_hash": "c9d65ddff6ac35245b5178bc0e7945c3b776d3099320cd839c53c147101c3f2e", "relations": [{"rule": 2, "type": "equivalent", "target": "5162898e1d2930e370711e9fe970d79d", "evidence": {"same_day": true, "patch_ids": ["46a600e26e5824cb2b13e1186a752671"], "statement_hash": "c9d65ddff6ac35245b5178bc0e7945c3b776d3099320cd839c53c147101c3f2e"}}], "version": "16.3", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "5162898e1d2930e370711e9fe970d79d", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Fix EXPLAIN's output for subplans in MERGE", "evidence": {"same_day": true, "patch_ids": ["46a600e26e5824cb2b13e1186a752671"], "statement_hash": "c9d65ddff6ac35245b5178bc0e7945c3b776d3099320cd839c53c147101c3f2e"}, "url": "/docs/compare/?release=15.7#15.7-fb99ca4d0b9d1006", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}]}, {"id": "16.3-5468b62e569aaa42", "cves": [], "html": "<p>Avoid deadlock during removal of orphaned temporary tables (Mikhail Zhilin) <a href=\"https://postgr.es/c/cbfbb14bd\">§</a></p>\n<p>If the session that creates a temporary table crashes without removing the table, autovacuum will eventually try to remove the orphaned table. However, an incoming session that's been assigned the same temporary namespace will do that too. If a temporary table has a dependency (such as an owned sequence) then a deadlock could result between these two cleanup attempts.</p>", "text": "Avoid deadlock during removal of orphaned temporary tables (Mikhail Zhilin) § If the session that creates a temporary table crashes without removing the table, autovacuum will eventually try to remove the orphaned table. However, an incoming session that's been assigned the same temporary namespace will do that too. If a temporary table has a dependency (such as an owned sequence) then a deadlock could result between these two cleanup attempts.", "title": "Avoid deadlock during removal of orphaned temporary tables", "commits": ["cbfbb14bd"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "77c15ef1be0a1e250bfdbd58580d726ccd63fed66f2f67c9fc6fef3cd9b2f38e", "section_path": ["Changes"], "commit_groups": [["4afc2c219", "4fb56a734", "6faca9ae2", "ca392df8d", "cbfbb14bd", "f5d9212e5"]], "identity_text": "Avoid deadlock during removal of orphaned temporary tables (Mikhail Zhilin) If the session that creates a temporary table crashes without removing the table, autovacuum will eventually try to remove the orphaned table. However, an incoming session that's been assigned the same temporary namespace will do that too. If a temporary table has a dependency (such as an owned sequence) then a deadlock could result between these two cleanup attempts.", "commit_aliases": ["4afc2c219", "4fb56a734", "6faca9ae2", "ca392df8d", "cbfbb14bd", "f5d9212e5"], "source_commits": ["cbfbb14bd"], "source_entry_id": "16.3/changes/012", "db_id": "a51b29547fb0a3c6e4c7e03971f30b2a", "patch_ids": ["a00e878de69d1a19e6ef6073a2362fe6"], "statement_hash": "8fee6f24f6ad4d6a6d08d47e40f856fee7c359c0de64a4bc774737c7cbdb024a", "relations": [{"rule": 2, "type": "equivalent", "target": "10db092e696e45f9d81a413968b84f80", "evidence": {"same_day": true, "patch_ids": ["a00e878de69d1a19e6ef6073a2362fe6"], "statement_hash": "8fee6f24f6ad4d6a6d08d47e40f856fee7c359c0de64a4bc774737c7cbdb024a"}}, {"rule": 2, "type": "equivalent", "target": "964b5974ae34a252057bb68172077f3b", "evidence": {"same_day": true, "patch_ids": ["a00e878de69d1a19e6ef6073a2362fe6"], "statement_hash": "8fee6f24f6ad4d6a6d08d47e40f856fee7c359c0de64a4bc774737c7cbdb024a"}}, {"rule": 2, "type": "equivalent", "target": "a0720dc32a33a298317c6bc4c4d54695", "evidence": {"same_day": true, "patch_ids": ["a00e878de69d1a19e6ef6073a2362fe6"], "statement_hash": "8fee6f24f6ad4d6a6d08d47e40f856fee7c359c0de64a4bc774737c7cbdb024a"}}, {"rule": 2, "type": "equivalent", "target": "fe708a1ceaa35d707899a2b3639c12ba", "evidence": {"same_day": true, "patch_ids": ["a00e878de69d1a19e6ef6073a2362fe6"], "statement_hash": "8fee6f24f6ad4d6a6d08d47e40f856fee7c359c0de64a4bc774737c7cbdb024a"}}], "version": "16.3", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "fe708a1ceaa35d707899a2b3639c12ba", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Avoid deadlock during removal of orphaned temporary tables", "evidence": {"same_day": true, "patch_ids": ["a00e878de69d1a19e6ef6073a2362fe6"], "statement_hash": "8fee6f24f6ad4d6a6d08d47e40f856fee7c359c0de64a4bc774737c7cbdb024a"}, "url": "/docs/compare/?release=15.7#15.7-178852343a784d35", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "a0720dc32a33a298317c6bc4c4d54695", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Avoid deadlock during removal of orphaned temporary tables", "evidence": {"same_day": true, "patch_ids": ["a00e878de69d1a19e6ef6073a2362fe6"], "statement_hash": "8fee6f24f6ad4d6a6d08d47e40f856fee7c359c0de64a4bc774737c7cbdb024a"}, "url": "/docs/compare/?release=14.12#14.12-dd3d8b7400eb4629", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "10db092e696e45f9d81a413968b84f80", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "Avoid deadlock during removal of orphaned temporary tables", "evidence": {"same_day": true, "patch_ids": ["a00e878de69d1a19e6ef6073a2362fe6"], "statement_hash": "8fee6f24f6ad4d6a6d08d47e40f856fee7c359c0de64a4bc774737c7cbdb024a"}, "url": "/docs/compare/?release=13.15#13.15-876d2219530d8093", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "964b5974ae34a252057bb68172077f3b", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "Avoid deadlock during removal of orphaned temporary tables", "evidence": {"same_day": true, "patch_ids": ["a00e878de69d1a19e6ef6073a2362fe6"], "statement_hash": "8fee6f24f6ad4d6a6d08d47e40f856fee7c359c0de64a4bc774737c7cbdb024a"}, "url": "/docs/compare/?release=12.19#12.19-df96b0e59c03c393", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-7294fd738118a2ab", "cves": [], "html": "<p>Fix updating of visibility map state in <code>VACUUM</code> with the <code>DISABLE_PAGE_SKIPPING</code> option (Heikki Linnakangas) <a href=\"https://postgr.es/c/407cb6c65\">§</a></p>\n<p>Due to an oversight, this mode caused all heap pages to be dirtied, resulting in excess I/O. Also, visibility map bits that were incorrectly set would not get cleared.</p>", "text": "Fix updating of visibility map state in VACUUM with the DISABLE_PAGE_SKIPPING option (Heikki Linnakangas) § Due to an oversight, this mode caused all heap pages to be dirtied, resulting in excess I/O. Also, visibility map bits that were incorrectly set would not get cleared.", "title": "Fix updating of visibility map state in VACUUM with the DISABLE_PAGE_SKIPPING option", "commits": ["407cb6c65"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "3b8794ff56b8b40432173dfae4fb4811270506cf5142c882ccf3db030b5374b4", "section_path": ["Changes"], "commit_groups": [["407cb6c65", "674e49c73"]], "identity_text": "Fix updating of visibility map state in VACUUM with the DISABLE_PAGE_SKIPPING option (Heikki Linnakangas) Due to an oversight, this mode caused all heap pages to be dirtied, resulting in excess I/O. Also, visibility map bits that were incorrectly set would not get cleared.", "commit_aliases": ["407cb6c65", "674e49c73"], "source_commits": ["407cb6c65"], "source_entry_id": "16.3/changes/013", "db_id": "f53b36ce2e2fcb57ab60e6b653c15b4d", "patch_ids": ["f2e1c7156921f29b740e8aa22e81ff73"], "statement_hash": "17a3446041431c6968c9dd08487434b295a9ffe82b48eae3286a1fa8934061a3", "relations": [], "version": "16.3", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.3-64f8786e84c48e8f", "cves": [], "html": "<p>Avoid race condition while examining per-relation frozen-XID values (Noah Misch) <a href=\"https://postgr.es/c/92685c389\">§</a></p>\n<p><code>VACUUM</code>'s computation of per-database frozen-XID values from per-relation values could get confused by a concurrent update of those values by another <code>VACUUM</code>.</p>", "text": "Avoid race condition while examining per-relation frozen-XID values (Noah Misch) § VACUUM's computation of per-database frozen-XID values from per-relation values could get confused by a concurrent update of those values by another VACUUM.", "title": "Avoid race condition while examining per-relation frozen-XID values", "commits": ["92685c389"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "a3e36d862b08ecd1d0a34072508adf8e6a5a573e5cc036ade8c81651e6d0595c", "section_path": ["Changes"], "commit_groups": [["2ca19aa81", "70cadfba0", "7c5915c4b", "92685c389", "f222349c4", "f65ab862e"]], "identity_text": "Avoid race condition while examining per-relation frozen-XID values (Noah Misch) VACUUM's computation of per-database frozen-XID values from per-relation values could get confused by a concurrent update of those values by another VACUUM.", "commit_aliases": ["2ca19aa81", "70cadfba0", "7c5915c4b", "92685c389", "f222349c4", "f65ab862e"], "source_commits": ["92685c389"], "source_entry_id": "16.3/changes/014", "db_id": "a4d682d73353370cf3daca302e5cf890", "patch_ids": ["2a1d4f8839d77425bd2a1f40c1e6c2f9"], "statement_hash": "90505578b478d98fc7531d63ff64a8969cd6a873495c3b5c64c4d747c0ca352e", "relations": [{"rule": 2, "type": "equivalent", "target": "13e273c9f4378a389d69634bdd78108c", "evidence": {"same_day": true, "patch_ids": ["2a1d4f8839d77425bd2a1f40c1e6c2f9"], "statement_hash": "90505578b478d98fc7531d63ff64a8969cd6a873495c3b5c64c4d747c0ca352e"}}, {"rule": 2, "type": "equivalent", "target": "3d9f28ddfd2eb05755c08bb786cd6fd9", "evidence": {"same_day": true, "patch_ids": ["2a1d4f8839d77425bd2a1f40c1e6c2f9"], "statement_hash": "90505578b478d98fc7531d63ff64a8969cd6a873495c3b5c64c4d747c0ca352e"}}, {"rule": 2, "type": "equivalent", "target": "809daebba1356e23f547ac4b3b41a780", "evidence": {"same_day": true, "patch_ids": ["2a1d4f8839d77425bd2a1f40c1e6c2f9"], "statement_hash": "90505578b478d98fc7531d63ff64a8969cd6a873495c3b5c64c4d747c0ca352e"}}, {"rule": 2, "type": "equivalent", "target": "b6b2e184cf5ac50af437324df4b7fa3a", "evidence": {"same_day": true, "patch_ids": ["2a1d4f8839d77425bd2a1f40c1e6c2f9"], "statement_hash": "90505578b478d98fc7531d63ff64a8969cd6a873495c3b5c64c4d747c0ca352e"}}], "version": "16.3", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "b6b2e184cf5ac50af437324df4b7fa3a", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Avoid race condition while examining per-relation frozen-XID values", "evidence": {"same_day": true, "patch_ids": ["2a1d4f8839d77425bd2a1f40c1e6c2f9"], "statement_hash": "90505578b478d98fc7531d63ff64a8969cd6a873495c3b5c64c4d747c0ca352e"}, "url": "/docs/compare/?release=15.7#15.7-3d6adc0a11d543c2", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "13e273c9f4378a389d69634bdd78108c", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Avoid race condition while examining per-relation frozen-XID values", "evidence": {"same_day": true, "patch_ids": ["2a1d4f8839d77425bd2a1f40c1e6c2f9"], "statement_hash": "90505578b478d98fc7531d63ff64a8969cd6a873495c3b5c64c4d747c0ca352e"}, "url": "/docs/compare/?release=14.12#14.12-d4f38d1f08369e91", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "809daebba1356e23f547ac4b3b41a780", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "Avoid race condition while examining per-relation frozen-XID values", "evidence": {"same_day": true, "patch_ids": ["2a1d4f8839d77425bd2a1f40c1e6c2f9"], "statement_hash": "90505578b478d98fc7531d63ff64a8969cd6a873495c3b5c64c4d747c0ca352e"}, "url": "/docs/compare/?release=13.15#13.15-6f84d98eb4c86235", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "3d9f28ddfd2eb05755c08bb786cd6fd9", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "Avoid race condition while examining per-relation frozen-XID values", "evidence": {"same_day": true, "patch_ids": ["2a1d4f8839d77425bd2a1f40c1e6c2f9"], "statement_hash": "90505578b478d98fc7531d63ff64a8969cd6a873495c3b5c64c4d747c0ca352e"}, "url": "/docs/compare/?release=12.19#12.19-ee7edbaaeb1b4fc5", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-3cde0e2bfb000367", "cves": [], "html": "<p>Fix buffer usage reporting for parallel vacuuming (Anthonin Bonnefoy) <a href=\"https://postgr.es/c/f199436c1\">§</a></p>\n<p>Buffer accesses performed by parallel workers were not getting counted in the statistics reported in <code>VERBOSE</code> mode.</p>", "text": "Fix buffer usage reporting for parallel vacuuming (Anthonin Bonnefoy) § Buffer accesses performed by parallel workers were not getting counted in the statistics reported in VERBOSE mode.", "title": "Fix buffer usage reporting for parallel vacuuming", "commits": ["f199436c1"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "b29c2c9796b83fbe90770d02f857020cc0461e361f67218b5a7582a84d03db88", "section_path": ["Changes"], "commit_groups": [["5cd72cc0c", "f199436c1", "faba2f8f3"]], "identity_text": "Fix buffer usage reporting for parallel vacuuming (Anthonin Bonnefoy) Buffer accesses performed by parallel workers were not getting counted in the statistics reported in VERBOSE mode.", "commit_aliases": ["5cd72cc0c", "f199436c1", "faba2f8f3"], "source_commits": ["f199436c1"], "source_entry_id": "16.3/changes/015", "db_id": "7611b4b99caad046fa6087941fdb5b24", "patch_ids": ["3641d1ebeaa28c676612fe5da95ce6a7"], "statement_hash": "3cec309c3dbf10a0f5b360dc128a33611c2d55c7434cbe4c3184ef054d1c563b", "relations": [{"rule": 2, "type": "equivalent", "target": "7d2c3492c14a872d43f8df29cce589c1", "evidence": {"same_day": true, "patch_ids": ["3641d1ebeaa28c676612fe5da95ce6a7"], "statement_hash": "3cec309c3dbf10a0f5b360dc128a33611c2d55c7434cbe4c3184ef054d1c563b"}}], "version": "16.3", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "7d2c3492c14a872d43f8df29cce589c1", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Fix buffer usage reporting for parallel vacuuming", "evidence": {"same_day": true, "patch_ids": ["3641d1ebeaa28c676612fe5da95ce6a7"], "statement_hash": "3cec309c3dbf10a0f5b360dc128a33611c2d55c7434cbe4c3184ef054d1c563b"}, "url": "/docs/compare/?release=15.7#15.7-e733d3d66db0bf63", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}]}, {"id": "16.3-d024cce96976efd0", "cves": [], "html": "<p>Ensure that join conditions generated from equivalence classes are applied at the correct plan level (Tom Lane) <a href=\"https://postgr.es/c/91800af13\">§</a></p>\n<p>In versions before <span>PostgreSQL</span> 16, it was possible for generated conditions to be evaluated below outer joins when they should be evaluated above (after) the outer join, leading to incorrect query results. All versions have a similar hazard when considering joins to <code>UNION ALL</code> trees that have constant outputs for the join column in some <code>SELECT</code> arms.</p>", "text": "Ensure that join conditions generated from equivalence classes are applied at the correct plan level (Tom Lane) § In versions before PostgreSQL 16, it was possible for generated conditions to be evaluated below outer joins when they should be evaluated above (after) the outer join, leading to incorrect query results. All versions have a similar hazard when considering joins to UNION ALL trees that have constant outputs for the join column in some SELECT arms.", "title": "Ensure that join conditions generated from equivalence classes are applied at the correct plan level", "commits": ["91800af13"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "7418592945969d8302909f406ea58e13df41423f1946c63e2a011c0f6aeb2622", "section_path": ["Changes"], "commit_groups": [["03107b4ed", "5aacfa64e", "91800af13", "ab2402268", "d9e4ee74f", "f502849d4"]], "identity_text": "Ensure that join conditions generated from equivalence classes are applied at the correct plan level (Tom Lane) In versions before PostgreSQL 16, it was possible for generated conditions to be evaluated below outer joins when they should be evaluated above (after) the outer join, leading to incorrect query results. All versions have a similar hazard when considering joins to UNION ALL trees that have constant outputs for the join column in some SELECT arms.", "commit_aliases": ["03107b4ed", "5aacfa64e", "91800af13", "ab2402268", "d9e4ee74f", "f502849d4"], "source_commits": ["91800af13"], "source_entry_id": "16.3/changes/016", "db_id": "bd63c9d1ec0c6ccfbab694b9888bd6cf", "patch_ids": ["803af7eb60775d3eaa757a2087fd3577"], "statement_hash": "46cb1ceee3c2cab46cfc1f0f2f800a6dcb18af57ba222473483290273d59001f", "relations": [{"rule": 2, "type": "equivalent", "target": "3fc24704e6a654b4fd0f280d874a1eec", "evidence": {"same_day": true, "patch_ids": ["803af7eb60775d3eaa757a2087fd3577"], "statement_hash": "46cb1ceee3c2cab46cfc1f0f2f800a6dcb18af57ba222473483290273d59001f"}}, {"rule": 2, "type": "equivalent", "target": "658c63a7eef27926f18eca85f44a760d", "evidence": {"same_day": true, "patch_ids": ["803af7eb60775d3eaa757a2087fd3577"], "statement_hash": "46cb1ceee3c2cab46cfc1f0f2f800a6dcb18af57ba222473483290273d59001f"}}, {"rule": 2, "type": "equivalent", "target": "7353821ce1638b590672d6e885ea72f1", "evidence": {"same_day": true, "patch_ids": ["803af7eb60775d3eaa757a2087fd3577"], "statement_hash": "46cb1ceee3c2cab46cfc1f0f2f800a6dcb18af57ba222473483290273d59001f"}}, {"rule": 2, "type": "equivalent", "target": "c622b2e4abdaec72b7c705d5abf61eb0", "evidence": {"same_day": true, "patch_ids": ["803af7eb60775d3eaa757a2087fd3577"], "statement_hash": "46cb1ceee3c2cab46cfc1f0f2f800a6dcb18af57ba222473483290273d59001f"}}], "version": "16.3", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "c622b2e4abdaec72b7c705d5abf61eb0", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Ensure that join conditions generated from equivalence classes are applied at the correct plan level", "evidence": {"same_day": true, "patch_ids": ["803af7eb60775d3eaa757a2087fd3577"], "statement_hash": "46cb1ceee3c2cab46cfc1f0f2f800a6dcb18af57ba222473483290273d59001f"}, "url": "/docs/compare/?release=15.7#15.7-22e8e29f4c12ad32", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "3fc24704e6a654b4fd0f280d874a1eec", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Ensure that join conditions generated from equivalence classes are applied at the correct plan level", "evidence": {"same_day": true, "patch_ids": ["803af7eb60775d3eaa757a2087fd3577"], "statement_hash": "46cb1ceee3c2cab46cfc1f0f2f800a6dcb18af57ba222473483290273d59001f"}, "url": "/docs/compare/?release=14.12#14.12-7f2ba0b3f6da6eeb", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "7353821ce1638b590672d6e885ea72f1", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "Ensure that join conditions generated from equivalence classes are applied at the correct plan level", "evidence": {"same_day": true, "patch_ids": ["803af7eb60775d3eaa757a2087fd3577"], "statement_hash": "46cb1ceee3c2cab46cfc1f0f2f800a6dcb18af57ba222473483290273d59001f"}, "url": "/docs/compare/?release=13.15#13.15-e8521d5a8d200d78", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "658c63a7eef27926f18eca85f44a760d", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "Ensure that join conditions generated from equivalence classes are applied at the correct plan level", "evidence": {"same_day": true, "patch_ids": ["803af7eb60775d3eaa757a2087fd3577"], "statement_hash": "46cb1ceee3c2cab46cfc1f0f2f800a6dcb18af57ba222473483290273d59001f"}, "url": "/docs/compare/?release=12.19#12.19-38af96fc2aaf3868", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-b27d067944c879d1", "cves": [], "html": "<p>Fix <span>“<span>could not find pathkey item to sort</span>”</span> errors occurring while planning aggregate functions with <code>ORDER BY</code> or <code>DISTINCT</code> options (David Rowley) <a href=\"https://postgr.es/c/4e1ff2aad\">§</a></p>\n<p>This is similar to a fix applied in 16.1, but it solves the problem for parallel plans.</p>", "text": "Fix “could not find pathkey item to sort” errors occurring while planning aggregate functions with ORDER BY or DISTINCT options (David Rowley) § This is similar to a fix applied in 16.1, but it solves the problem for parallel plans.", "title": "Fix “could not find pathkey item to sort” errors occurring while planning aggregate functions with ORDER BY or DISTINCT options", "commits": ["4e1ff2aad"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "47853a170ab60c79551cf75e33ff88b27a46972bbe826beabb101316e2eeb317", "section_path": ["Changes"], "commit_groups": [["4169850f0", "4e1ff2aad"]], "identity_text": "Fix could not find pathkey item to sort errors occurring while planning aggregate functions with ORDER BY or DISTINCT options (David Rowley) This is similar to a fix applied in 16.1, but it solves the problem for parallel plans.", "commit_aliases": ["4169850f0", "4e1ff2aad"], "source_commits": ["4e1ff2aad"], "source_entry_id": "16.3/changes/017", "db_id": "1b0fce43ac55f10161cf27cb62c08ac6", "patch_ids": ["8bc418303b7145dbb86db5e03eae733e"], "statement_hash": "bead3f6085f63307165f0098ea6fd2645636ae266f2efc14a6155cf4ead2018c", "relations": [], "version": "16.3", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.3-50c4c3834e4f097b", "cves": [], "html": "<p>Prevent potentially-incorrect optimization of some window functions (David Rowley) <a href=\"https://postgr.es/c/9d36b883b\">§</a></p>\n<p>Disable <span>“<span>run condition</span>”</span> optimization of <code>ntile()</code> and <code>count()</code> with non-constant arguments. This avoids possible misbehavior with sub-selects, typically leading to errors like <span>“<span>WindowFunc not found in subplan target lists</span>”</span>.</p>", "text": "Prevent potentially-incorrect optimization of some window functions (David Rowley) § Disable “run condition” optimization of ntile() and count() with non-constant arguments. This avoids possible misbehavior with sub-selects, typically leading to errors like “WindowFunc not found in subplan target lists”.", "title": "Prevent potentially-incorrect optimization of some window functions", "commits": ["9d36b883b"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "52e38c7edaeddc674c0ca389bfed9e563d25cd320fe52fad4084a42f61c1e5c8", "section_path": ["Changes"], "commit_groups": [["7e5d20bbd", "9d36b883b"]], "identity_text": "Prevent potentially-incorrect optimization of some window functions (David Rowley) Disable run condition optimization of ntile() and count() with non-constant arguments. This avoids possible misbehavior with sub-selects, typically leading to errors like WindowFunc not found in subplan target lists.", "commit_aliases": ["7e5d20bbd", "9d36b883b"], "source_commits": ["9d36b883b"], "source_entry_id": "16.3/changes/018", "db_id": "f3fed149d5b61494b9c48d780d9debe1", "patch_ids": ["80af7016a4f87dfebafbf96511919c00"], "statement_hash": "115fbf68fbfa58ad7d6fd25e8a560cd8a1326988f405017fbac6ff94b1c0ec48", "relations": [{"rule": 2, "type": "equivalent", "target": "5334fcd37d70b5396d38cdc3641234bf", "evidence": {"same_day": true, "patch_ids": ["80af7016a4f87dfebafbf96511919c00"], "statement_hash": "115fbf68fbfa58ad7d6fd25e8a560cd8a1326988f405017fbac6ff94b1c0ec48"}}], "version": "16.3", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "5334fcd37d70b5396d38cdc3641234bf", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Prevent potentially-incorrect optimization of some window functions", "evidence": {"same_day": true, "patch_ids": ["80af7016a4f87dfebafbf96511919c00"], "statement_hash": "115fbf68fbfa58ad7d6fd25e8a560cd8a1326988f405017fbac6ff94b1c0ec48"}, "url": "/docs/compare/?release=15.7#15.7-d3abd215f0970a4d", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}]}, {"id": "16.3-8265df4a254b21bc", "cves": [], "html": "<p>Avoid unnecessary use of moving-aggregate mode with a non-moving window frame (Vallimaharajan G) <a href=\"https://postgr.es/c/a94f51a7b\">§</a></p>\n<p>When a plain aggregate is used as a window function, and the window frame start is specified as <code>UNBOUNDED PRECEDING</code>, the frame's head cannot move so we do not need to use the special (and more expensive) moving-aggregate mode. This optimization was intended all along, but due to a coding error it never triggered.</p>", "text": "Avoid unnecessary use of moving-aggregate mode with a non-moving window frame (Vallimaharajan G) § When a plain aggregate is used as a window function, and the window frame start is specified as UNBOUNDED PRECEDING, the frame's head cannot move so we do not need to use the special (and more expensive) moving-aggregate mode. This optimization was intended all along, but due to a coding error it never triggered.", "title": "Avoid unnecessary use of moving-aggregate mode with a non-moving window frame", "commits": ["a94f51a7b"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "2e4023657085f60baab97544ce0ece26fcab20cefc533ab54db84c36a5cbdf4a", "section_path": ["Changes"], "commit_groups": [["03561a6c7", "0d30e48c2", "25675c474", "a767cdc84", "a94f51a7b", "de3c5b187"]], "identity_text": "Avoid unnecessary use of moving-aggregate mode with a non-moving window frame (Vallimaharajan G) When a plain aggregate is used as a window function, and the window frame start is specified as UNBOUNDED PRECEDING, the frame's head cannot move so we do not need to use the special (and more expensive) moving-aggregate mode. This optimization was intended all along, but due to a coding error it never triggered.", "commit_aliases": ["03561a6c7", "0d30e48c2", "25675c474", "a767cdc84", "a94f51a7b", "de3c5b187"], "source_commits": ["a94f51a7b"], "source_entry_id": "16.3/changes/019", "db_id": "6e5d17d552d55b32c183c979462a22aa", "patch_ids": ["47f369d8916ef3d5382b9ba6722f0aee"], "statement_hash": "623a8350018d57fa2e32f5d42d253b941b352db93feb84ac124ba03fefa88dde", "relations": [{"rule": 2, "type": "equivalent", "target": "8336fdf7b47048506e3166ce83a5ac54", "evidence": {"same_day": true, "patch_ids": ["47f369d8916ef3d5382b9ba6722f0aee"], "statement_hash": "623a8350018d57fa2e32f5d42d253b941b352db93feb84ac124ba03fefa88dde"}}, {"rule": 2, "type": "equivalent", "target": "bf991f789c2d125d6fee000622467111", "evidence": {"same_day": true, "patch_ids": ["47f369d8916ef3d5382b9ba6722f0aee"], "statement_hash": "623a8350018d57fa2e32f5d42d253b941b352db93feb84ac124ba03fefa88dde"}}, {"rule": 2, "type": "equivalent", "target": "cac74bac165a12ad82398067235c2204", "evidence": {"same_day": true, "patch_ids": ["47f369d8916ef3d5382b9ba6722f0aee"], "statement_hash": "623a8350018d57fa2e32f5d42d253b941b352db93feb84ac124ba03fefa88dde"}}, {"rule": 2, "type": "equivalent", "target": "d00b710d360a1db439f86ca9d0837cfc", "evidence": {"same_day": true, "patch_ids": ["47f369d8916ef3d5382b9ba6722f0aee"], "statement_hash": "623a8350018d57fa2e32f5d42d253b941b352db93feb84ac124ba03fefa88dde"}}], "version": "16.3", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "cac74bac165a12ad82398067235c2204", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Avoid unnecessary use of moving-aggregate mode with a non-moving window frame", "evidence": {"same_day": true, "patch_ids": ["47f369d8916ef3d5382b9ba6722f0aee"], "statement_hash": "623a8350018d57fa2e32f5d42d253b941b352db93feb84ac124ba03fefa88dde"}, "url": "/docs/compare/?release=15.7#15.7-5bd59c50ba56bf34", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "d00b710d360a1db439f86ca9d0837cfc", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Avoid unnecessary use of moving-aggregate mode with a non-moving window frame", "evidence": {"same_day": true, "patch_ids": ["47f369d8916ef3d5382b9ba6722f0aee"], "statement_hash": "623a8350018d57fa2e32f5d42d253b941b352db93feb84ac124ba03fefa88dde"}, "url": "/docs/compare/?release=14.12#14.12-b0d248b556564306", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "bf991f789c2d125d6fee000622467111", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "Avoid unnecessary use of moving-aggregate mode with a non-moving window frame", "evidence": {"same_day": true, "patch_ids": ["47f369d8916ef3d5382b9ba6722f0aee"], "statement_hash": "623a8350018d57fa2e32f5d42d253b941b352db93feb84ac124ba03fefa88dde"}, "url": "/docs/compare/?release=13.15#13.15-7abdd63cbda6763b", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "8336fdf7b47048506e3166ce83a5ac54", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "Avoid unnecessary use of moving-aggregate mode with a non-moving window frame", "evidence": {"same_day": true, "patch_ids": ["47f369d8916ef3d5382b9ba6722f0aee"], "statement_hash": "623a8350018d57fa2e32f5d42d253b941b352db93feb84ac124ba03fefa88dde"}, "url": "/docs/compare/?release=12.19#12.19-f885a24ff8dcb03f", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-faa46a51e132171b", "cves": [], "html": "<p>Avoid use of already-freed data while planning partition-wise joins under GEQO (Tom Lane) <a href=\"https://postgr.es/c/ef0333e67\">§</a></p>\n<p>This would typically end in a crash or unexpected error message.</p>", "text": "Avoid use of already-freed data while planning partition-wise joins under GEQO (Tom Lane) § This would typically end in a crash or unexpected error message.", "title": "Avoid use of already-freed data while planning partition-wise joins under GEQO", "commits": ["ef0333e67"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "e27f52739595063f9e476583c1acbaf7c78a3582d418ad3a74a0017de29ebb00", "section_path": ["Changes"], "commit_groups": [["37bbe3d3a", "9061fd23c", "a6b2a51e1", "cbeb45527", "cf807eba5", "ef0333e67"]], "identity_text": "Avoid use of already-freed data while planning partition-wise joins under GEQO (Tom Lane) This would typically end in a crash or unexpected error message.", "commit_aliases": ["37bbe3d3a", "9061fd23c", "a6b2a51e1", "cbeb45527", "cf807eba5", "ef0333e67"], "source_commits": ["ef0333e67"], "source_entry_id": "16.3/changes/020", "db_id": "3dd3e41288a97f5ade642248609f3e48", "patch_ids": ["8b94e7db0fec3d673a89b6153aa70725"], "statement_hash": "f6931c31cff739979420ef835811c0b1789dee22c1d12be7702b7062f34fb1d4", "relations": [{"rule": 2, "type": "equivalent", "target": "0d3074cad771d5db9fea1fd758e762a2", "evidence": {"same_day": true, "patch_ids": ["8b94e7db0fec3d673a89b6153aa70725"], "statement_hash": "f6931c31cff739979420ef835811c0b1789dee22c1d12be7702b7062f34fb1d4"}}, {"rule": 2, "type": "equivalent", "target": "81d8ad265d4f8152f8d294828e2b3653", "evidence": {"same_day": true, "patch_ids": ["8b94e7db0fec3d673a89b6153aa70725"], "statement_hash": "f6931c31cff739979420ef835811c0b1789dee22c1d12be7702b7062f34fb1d4"}}, {"rule": 2, "type": "equivalent", "target": "d2e09b93d7b8a33572885d7757e4b8b2", "evidence": {"same_day": true, "patch_ids": ["8b94e7db0fec3d673a89b6153aa70725"], "statement_hash": "f6931c31cff739979420ef835811c0b1789dee22c1d12be7702b7062f34fb1d4"}}, {"rule": 2, "type": "equivalent", "target": "f566d302f941aee4baf53034a6f28f36", "evidence": {"same_day": true, "patch_ids": ["8b94e7db0fec3d673a89b6153aa70725"], "statement_hash": "f6931c31cff739979420ef835811c0b1789dee22c1d12be7702b7062f34fb1d4"}}], "version": "16.3", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "0d3074cad771d5db9fea1fd758e762a2", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Avoid use of already-freed data while planning partition-wise joins under GEQO", "evidence": {"same_day": true, "patch_ids": ["8b94e7db0fec3d673a89b6153aa70725"], "statement_hash": "f6931c31cff739979420ef835811c0b1789dee22c1d12be7702b7062f34fb1d4"}, "url": "/docs/compare/?release=15.7#15.7-768c63d0b2dacf7f", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "81d8ad265d4f8152f8d294828e2b3653", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Avoid use of already-freed data while planning partition-wise joins under GEQO", "evidence": {"same_day": true, "patch_ids": ["8b94e7db0fec3d673a89b6153aa70725"], "statement_hash": "f6931c31cff739979420ef835811c0b1789dee22c1d12be7702b7062f34fb1d4"}, "url": "/docs/compare/?release=14.12#14.12-96760e4ceef8c129", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "f566d302f941aee4baf53034a6f28f36", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "Avoid use of already-freed data while planning partition-wise joins under GEQO", "evidence": {"same_day": true, "patch_ids": ["8b94e7db0fec3d673a89b6153aa70725"], "statement_hash": "f6931c31cff739979420ef835811c0b1789dee22c1d12be7702b7062f34fb1d4"}, "url": "/docs/compare/?release=13.15#13.15-00e114a6a75f068b", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "d2e09b93d7b8a33572885d7757e4b8b2", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "Avoid use of already-freed data while planning partition-wise joins under GEQO", "evidence": {"same_day": true, "patch_ids": ["8b94e7db0fec3d673a89b6153aa70725"], "statement_hash": "f6931c31cff739979420ef835811c0b1789dee22c1d12be7702b7062f34fb1d4"}, "url": "/docs/compare/?release=12.19#12.19-4fa5a5f2c77c3473", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-f7de5aa2ac15a29e", "cves": [], "html": "<p>Avoid freeing still-in-use data in Memoize (Tender Wang, Andrei Lepikhov) <a href=\"https://postgr.es/c/348233cb1\">§</a></p>\n<p>In production builds this error frequently didn't cause any problems, as the freed data would most likely not get overwritten before it was used.</p>", "text": "Avoid freeing still-in-use data in Memoize (Tender Wang, Andrei Lepikhov) § In production builds this error frequently didn't cause any problems, as the freed data would most likely not get overwritten before it was used.", "title": "Avoid freeing still-in-use data in Memoize", "commits": ["348233cb1"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "0909615803816b85932ffebe7544fae129eb1a25fc31718af72bd514944fefda", "section_path": ["Changes"], "commit_groups": [["348233cb1", "72b8507db", "74530804f", "e62984647"]], "identity_text": "Avoid freeing still-in-use data in Memoize (Tender Wang, Andrei Lepikhov) In production builds this error frequently didn't cause any problems, as the freed data would most likely not get overwritten before it was used.", "commit_aliases": ["348233cb1", "72b8507db", "74530804f", "e62984647"], "source_commits": ["348233cb1"], "source_entry_id": "16.3/changes/021", "db_id": "130f3a5d336f8992c1f178ef3f1ebb92", "patch_ids": ["6da87f6363264d33dbd62a11d866d767"], "statement_hash": "d998352c48f7bb752cce49e8a1a32a2d7a5cf9ca03ee50a73b4b83b6f5c5000a", "relations": [{"rule": 2, "type": "equivalent", "target": "0e736c31d9f2cec4e84dc6ab634f14a9", "evidence": {"same_day": true, "patch_ids": ["6da87f6363264d33dbd62a11d866d767"], "statement_hash": "d998352c48f7bb752cce49e8a1a32a2d7a5cf9ca03ee50a73b4b83b6f5c5000a"}}, {"rule": 2, "type": "equivalent", "target": "8b1db8996368dc4bc20d19b739216bba", "evidence": {"same_day": true, "patch_ids": ["6da87f6363264d33dbd62a11d866d767"], "statement_hash": "d998352c48f7bb752cce49e8a1a32a2d7a5cf9ca03ee50a73b4b83b6f5c5000a"}}], "version": "16.3", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "8b1db8996368dc4bc20d19b739216bba", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Avoid freeing still-in-use data in Memoize", "evidence": {"same_day": true, "patch_ids": ["6da87f6363264d33dbd62a11d866d767"], "statement_hash": "d998352c48f7bb752cce49e8a1a32a2d7a5cf9ca03ee50a73b4b83b6f5c5000a"}, "url": "/docs/compare/?release=15.7#15.7-34144e747d3c9456", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "0e736c31d9f2cec4e84dc6ab634f14a9", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Avoid freeing still-in-use data in Memoize", "evidence": {"same_day": true, "patch_ids": ["6da87f6363264d33dbd62a11d866d767"], "statement_hash": "d998352c48f7bb752cce49e8a1a32a2d7a5cf9ca03ee50a73b4b83b6f5c5000a"}, "url": "/docs/compare/?release=14.12#14.12-6a542da4177cb40b", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}]}, {"id": "16.3-49c5210a71e06032", "cves": [], "html": "<p>Fix incorrectly-reported statistics kind codes in <span>“<span>requested statistics kind <em><code>X</code></em> is not yet built</span>”</span> error messages (David Rowley) <a href=\"https://postgr.es/c/ac7e6a01c\">§</a></p>", "text": "Fix incorrectly-reported statistics kind codes in “requested statistics kind X is not yet built” error messages (David Rowley) §", "title": "Fix incorrectly-reported statistics kind codes in “requested statistics kind X is not yet built” error messages", "commits": ["ac7e6a01c"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "f7b72e365db5dfa4abc88167853b3a41b2c992d0280db41e8b3e4776fccf5089", "section_path": ["Changes"], "commit_groups": [["0c2dda109", "164fe7a6e", "421dfb41a", "94246405d", "a37a3e2b3", "ac7e6a01c"]], "identity_text": "Fix incorrectly-reported statistics kind codes in requested statistics kind X is not yet built error messages (David Rowley)", "commit_aliases": ["0c2dda109", "164fe7a6e", "421dfb41a", "94246405d", "a37a3e2b3", "ac7e6a01c"], "source_commits": ["ac7e6a01c"], "source_entry_id": "16.3/changes/022", "db_id": "3bae63f86b462faa8a56f1c4af14c978", "patch_ids": ["7468a8d1ec726ee1822f2bbc428818d5"], "statement_hash": "c785b62f434310cbca07a59a03b3991eb9b85f818a0e4d26557dd775219f772b", "relations": [{"rule": 2, "type": "equivalent", "target": "96216a61cccc2166c588572e759eef6e", "evidence": {"same_day": true, "patch_ids": ["7468a8d1ec726ee1822f2bbc428818d5"], "statement_hash": "c785b62f434310cbca07a59a03b3991eb9b85f818a0e4d26557dd775219f772b"}}, {"rule": 2, "type": "equivalent", "target": "a7c91504aaffc16f12a040830840c4b5", "evidence": {"same_day": true, "patch_ids": ["7468a8d1ec726ee1822f2bbc428818d5"], "statement_hash": "c785b62f434310cbca07a59a03b3991eb9b85f818a0e4d26557dd775219f772b"}}, {"rule": 2, "type": "equivalent", "target": "ac2a4c3f6aab6fcbeebd9f1123df5d98", "evidence": {"same_day": true, "patch_ids": ["7468a8d1ec726ee1822f2bbc428818d5"], "statement_hash": "c785b62f434310cbca07a59a03b3991eb9b85f818a0e4d26557dd775219f772b"}}, {"rule": 2, "type": "equivalent", "target": "ea94ce14bbdae05e469124c184f01c03", "evidence": {"same_day": true, "patch_ids": ["7468a8d1ec726ee1822f2bbc428818d5"], "statement_hash": "c785b62f434310cbca07a59a03b3991eb9b85f818a0e4d26557dd775219f772b"}}], "version": "16.3", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "96216a61cccc2166c588572e759eef6e", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Fix incorrectly-reported statistics kind codes in “requested statistics kind X is not yet built” error messages", "evidence": {"same_day": true, "patch_ids": ["7468a8d1ec726ee1822f2bbc428818d5"], "statement_hash": "c785b62f434310cbca07a59a03b3991eb9b85f818a0e4d26557dd775219f772b"}, "url": "/docs/compare/?release=15.7#15.7-4cc07fc08b3f26d4", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "ea94ce14bbdae05e469124c184f01c03", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Fix incorrectly-reported statistics kind codes in “requested statistics kind X is not yet built” error messages", "evidence": {"same_day": true, "patch_ids": ["7468a8d1ec726ee1822f2bbc428818d5"], "statement_hash": "c785b62f434310cbca07a59a03b3991eb9b85f818a0e4d26557dd775219f772b"}, "url": "/docs/compare/?release=14.12#14.12-797bcd1e14baa92e", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "a7c91504aaffc16f12a040830840c4b5", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "Fix incorrectly-reported statistics kind codes in “requested statistics kind X is not yet built” error messages", "evidence": {"same_day": true, "patch_ids": ["7468a8d1ec726ee1822f2bbc428818d5"], "statement_hash": "c785b62f434310cbca07a59a03b3991eb9b85f818a0e4d26557dd775219f772b"}, "url": "/docs/compare/?release=13.15#13.15-48e3af890f45a200", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "ac2a4c3f6aab6fcbeebd9f1123df5d98", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "Fix incorrectly-reported statistics kind codes in “requested statistics kind X is not yet built” error messages", "evidence": {"same_day": true, "patch_ids": ["7468a8d1ec726ee1822f2bbc428818d5"], "statement_hash": "c785b62f434310cbca07a59a03b3991eb9b85f818a0e4d26557dd775219f772b"}, "url": "/docs/compare/?release=12.19#12.19-a7cb15ec680b6880", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-416c657d069f844d", "cves": [], "html": "<p>Use a hash table instead of linear search for <span>“<span>catcache list</span>”</span> objects (Tom Lane) <a href=\"https://postgr.es/c/14e991db8\">§</a></p>\n<p>This change solves performance problems that were reported for certain operations in installations with many thousands of roles.</p>", "text": "Use a hash table instead of linear search for “catcache list” objects (Tom Lane) § This change solves performance problems that were reported for certain operations in installations with many thousands of roles.", "title": "Use a hash table instead of linear search for “catcache list” objects", "commits": ["14e991db8"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "61ae5ee2d31d4dc3bc205f930be0019c517f2e679c8fcd773f490d7359b99091", "section_path": ["Changes"], "commit_groups": [["14e991db8", "473182c95"]], "identity_text": "Use a hash table instead of linear search for catcache list objects (Tom Lane) This change solves performance problems that were reported for certain operations in installations with many thousands of roles.", "commit_aliases": ["14e991db8", "473182c95"], "source_commits": ["14e991db8"], "source_entry_id": "16.3/changes/023", "db_id": "c3d8ae6e9e0e17820ea30cb61e30c863", "patch_ids": ["f2dde5438662f844b1ea11bfcee03c6e"], "statement_hash": "717dff8ee976e8b7d1e79b545ac11218133a7d4a9e52d26e655e87ff46c3bce7", "relations": [], "version": "16.3", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.3-8bbad756138ac4e2", "cves": [], "html": "<p>Be more careful with <code>RECORD</code>-returning functions in <code>FROM</code> (Tom Lane) <a href=\"https://postgr.es/c/cc1eb6a3c\">§</a> <a href=\"https://postgr.es/c/1b3029be5\">§</a></p>\n<p>The output columns of such a function call must be defined by an <code>AS</code> clause that specifies the column names and data types. If the actual function output value doesn't match that, an error is supposed to be thrown at runtime. However, some code paths would examine the actual value prematurely, and potentially issue strange errors or suffer assertion failures if it doesn't match expectations.</p>", "text": "Be more careful with RECORD-returning functions in FROM (Tom Lane) § § The output columns of such a function call must be defined by an AS clause that specifies the column names and data types. If the actual function output value doesn't match that, an error is supposed to be thrown at runtime. However, some code paths would examine the actual value prematurely, and potentially issue strange errors or suffer assertion failures if it doesn't match expectations.", "title": "Be more careful with RECORD-returning functions in FROM", "commits": ["1b3029be5", "cc1eb6a3c"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "898858014acc5fd0f9dd49f00838d6eba048dc8a96c466015c475857ddd17ed8", "section_path": ["Changes"], "commit_groups": [["09989ba84", "78e81e14d", "b6e21cef7", "cc1eb6a3c", "e0970862e", "e0df80828"], ["1b3029be5", "2ed8f9a01", "3b671dcf5", "466376c9f", "a595c3075", "d769f9d97"]], "identity_text": "Be more careful with RECORD-returning functions in FROM (Tom Lane) The output columns of such a function call must be defined by an AS clause that specifies the column names and data types. If the actual function output value doesn't match that, an error is supposed to be thrown at runtime. However, some code paths would examine the actual value prematurely, and potentially issue strange errors or suffer assertion failures if it doesn't match expectations.", "commit_aliases": ["09989ba84", "1b3029be5", "2ed8f9a01", "3b671dcf5", "466376c9f", "78e81e14d", "a595c3075", "b6e21cef7", "cc1eb6a3c", "d769f9d97", "e0970862e", "e0df80828"], "source_commits": ["1b3029be5", "cc1eb6a3c"], "source_entry_id": "16.3/changes/024", "db_id": "7f97214ef7881e110459fdb50a9c792a", "patch_ids": ["34a8a7ca5060694e2e2d62943a3f25b1", "cf592f782579ee7fb7bcd1d5e9efd76c"], "statement_hash": "fb2c61c0f6b9fc2c0b9bb697091ccb55b04ab99ea6fed370c826774304115147", "relations": [{"rule": 2, "type": "equivalent", "target": "65e810e8c912f8a884e9ddbc133c3d3a", "evidence": {"same_day": true, "patch_ids": ["34a8a7ca5060694e2e2d62943a3f25b1", "cf592f782579ee7fb7bcd1d5e9efd76c"], "statement_hash": "fb2c61c0f6b9fc2c0b9bb697091ccb55b04ab99ea6fed370c826774304115147"}}, {"rule": 2, "type": "equivalent", "target": "ac65ec3b85e1e3074b66b144e5a07c7f", "evidence": {"same_day": true, "patch_ids": ["34a8a7ca5060694e2e2d62943a3f25b1", "cf592f782579ee7fb7bcd1d5e9efd76c"], "statement_hash": "fb2c61c0f6b9fc2c0b9bb697091ccb55b04ab99ea6fed370c826774304115147"}}, {"rule": 2, "type": "equivalent", "target": "af397873d66e6409c512a0c15e4d45c7", "evidence": {"same_day": true, "patch_ids": ["34a8a7ca5060694e2e2d62943a3f25b1", "cf592f782579ee7fb7bcd1d5e9efd76c"], "statement_hash": "fb2c61c0f6b9fc2c0b9bb697091ccb55b04ab99ea6fed370c826774304115147"}}, {"rule": 2, "type": "equivalent", "target": "ba5546707dea053d6afe810f69e3a7d8", "evidence": {"same_day": true, "patch_ids": ["34a8a7ca5060694e2e2d62943a3f25b1", "cf592f782579ee7fb7bcd1d5e9efd76c"], "statement_hash": "fb2c61c0f6b9fc2c0b9bb697091ccb55b04ab99ea6fed370c826774304115147"}}], "version": "16.3", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "65e810e8c912f8a884e9ddbc133c3d3a", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Be more careful with RECORD-returning functions in FROM", "evidence": {"same_day": true, "patch_ids": ["34a8a7ca5060694e2e2d62943a3f25b1", "cf592f782579ee7fb7bcd1d5e9efd76c"], "statement_hash": "fb2c61c0f6b9fc2c0b9bb697091ccb55b04ab99ea6fed370c826774304115147"}, "url": "/docs/compare/?release=15.7#15.7-7bc83505f9f2bfed", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "ac65ec3b85e1e3074b66b144e5a07c7f", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Be more careful with RECORD-returning functions in FROM", "evidence": {"same_day": true, "patch_ids": ["34a8a7ca5060694e2e2d62943a3f25b1", "cf592f782579ee7fb7bcd1d5e9efd76c"], "statement_hash": "fb2c61c0f6b9fc2c0b9bb697091ccb55b04ab99ea6fed370c826774304115147"}, "url": "/docs/compare/?release=14.12#14.12-ff77d629a9941b32", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "ba5546707dea053d6afe810f69e3a7d8", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "Be more careful with RECORD-returning functions in FROM", "evidence": {"same_day": true, "patch_ids": ["34a8a7ca5060694e2e2d62943a3f25b1", "cf592f782579ee7fb7bcd1d5e9efd76c"], "statement_hash": "fb2c61c0f6b9fc2c0b9bb697091ccb55b04ab99ea6fed370c826774304115147"}, "url": "/docs/compare/?release=13.15#13.15-e8c4fd4fbca2483f", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "af397873d66e6409c512a0c15e4d45c7", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "Be more careful with RECORD-returning functions in FROM", "evidence": {"same_day": true, "patch_ids": ["34a8a7ca5060694e2e2d62943a3f25b1", "cf592f782579ee7fb7bcd1d5e9efd76c"], "statement_hash": "fb2c61c0f6b9fc2c0b9bb697091ccb55b04ab99ea6fed370c826774304115147"}, "url": "/docs/compare/?release=12.19#12.19-469263d163f6b829", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-a8d3e266822511f9", "cves": [], "html": "<p>Fix confusion about the return rowtype of SQL-language procedures (Tom Lane) <a href=\"https://postgr.es/c/40d1bdeb7\">§</a></p>\n<p>A procedure implemented in SQL language that returns a single composite-type column would cause an assertion failure or core dump.</p>", "text": "Fix confusion about the return rowtype of SQL-language procedures (Tom Lane) § A procedure implemented in SQL language that returns a single composite-type column would cause an assertion failure or core dump.", "title": "Fix confusion about the return rowtype of SQL-language procedures", "commits": ["40d1bdeb7"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "49c80db978d0eee46303a8d25643334b0f51811997d242b348ee66b72f4787a6", "section_path": ["Changes"], "commit_groups": [["28184f039", "40d1bdeb7", "649bbba11", "6ee3261e9", "6f66fadad", "dc1503d5b"]], "identity_text": "Fix confusion about the return rowtype of SQL-language procedures (Tom Lane) A procedure implemented in SQL language that returns a single composite-type column would cause an assertion failure or core dump.", "commit_aliases": ["28184f039", "40d1bdeb7", "649bbba11", "6ee3261e9", "6f66fadad", "dc1503d5b"], "source_commits": ["40d1bdeb7"], "source_entry_id": "16.3/changes/025", "db_id": "9d8d6ce7a5f9b71970a05f5179b6ea8c", "patch_ids": ["55fd9e9ab6d2ac086e27432436e41cae"], "statement_hash": "907113574ac3b2af5fc9866b9a649acb7c77f52e688de373ba370837235590bb", "relations": [{"rule": 2, "type": "equivalent", "target": "023c54df706ee17ccaa4c565805fd806", "evidence": {"same_day": true, "patch_ids": ["55fd9e9ab6d2ac086e27432436e41cae"], "statement_hash": "907113574ac3b2af5fc9866b9a649acb7c77f52e688de373ba370837235590bb"}}, {"rule": 2, "type": "equivalent", "target": "30f7289da67770943e16b25af0acfdb4", "evidence": {"same_day": true, "patch_ids": ["55fd9e9ab6d2ac086e27432436e41cae"], "statement_hash": "907113574ac3b2af5fc9866b9a649acb7c77f52e688de373ba370837235590bb"}}, {"rule": 2, "type": "equivalent", "target": "a22f286d39d214d58842d7debd01428c", "evidence": {"same_day": true, "patch_ids": ["55fd9e9ab6d2ac086e27432436e41cae"], "statement_hash": "907113574ac3b2af5fc9866b9a649acb7c77f52e688de373ba370837235590bb"}}, {"rule": 2, "type": "equivalent", "target": "eeade529b7fad1faa79eecdcd364518f", "evidence": {"same_day": true, "patch_ids": ["55fd9e9ab6d2ac086e27432436e41cae"], "statement_hash": "907113574ac3b2af5fc9866b9a649acb7c77f52e688de373ba370837235590bb"}}], "version": "16.3", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "30f7289da67770943e16b25af0acfdb4", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Fix confusion about the return rowtype of SQL-language procedures", "evidence": {"same_day": true, "patch_ids": ["55fd9e9ab6d2ac086e27432436e41cae"], "statement_hash": "907113574ac3b2af5fc9866b9a649acb7c77f52e688de373ba370837235590bb"}, "url": "/docs/compare/?release=15.7#15.7-b4cbe468fe92e106", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "a22f286d39d214d58842d7debd01428c", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Fix confusion about the return rowtype of SQL-language procedures", "evidence": {"same_day": true, "patch_ids": ["55fd9e9ab6d2ac086e27432436e41cae"], "statement_hash": "907113574ac3b2af5fc9866b9a649acb7c77f52e688de373ba370837235590bb"}, "url": "/docs/compare/?release=14.12#14.12-f60bfd7284b1281f", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "023c54df706ee17ccaa4c565805fd806", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "Fix confusion about the return rowtype of SQL-language procedures", "evidence": {"same_day": true, "patch_ids": ["55fd9e9ab6d2ac086e27432436e41cae"], "statement_hash": "907113574ac3b2af5fc9866b9a649acb7c77f52e688de373ba370837235590bb"}, "url": "/docs/compare/?release=13.15#13.15-2de9a9de6e63c87e", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "eeade529b7fad1faa79eecdcd364518f", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "Fix confusion about the return rowtype of SQL-language procedures", "evidence": {"same_day": true, "patch_ids": ["55fd9e9ab6d2ac086e27432436e41cae"], "statement_hash": "907113574ac3b2af5fc9866b9a649acb7c77f52e688de373ba370837235590bb"}, "url": "/docs/compare/?release=12.19#12.19-dc898f149d6e82a6", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-b7ccbd5caf4b49f0", "cves": [], "html": "<p>Add protective stack depth checks to some recursive functions (Egor Chindyaskin) <a href=\"https://postgr.es/c/760767182\">§</a></p>", "text": "Add protective stack depth checks to some recursive functions (Egor Chindyaskin) §", "title": "Add protective stack depth checks to some recursive functions", "commits": ["760767182"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "3514477eda9ec247e61958dc103e1d7d905ded55480d389f03f9520f19830ec9", "section_path": ["Changes"], "commit_groups": [["445c7e38f", "75bcba6cb", "760767182", "84788ee5b", "84cc1a552", "98bfb7558"], ["d57b7cc33"]], "identity_text": "Add protective stack depth checks to some recursive functions (Egor Chindyaskin)", "commit_aliases": ["445c7e38f", "75bcba6cb", "760767182", "84788ee5b", "84cc1a552", "98bfb7558", "d57b7cc33"], "source_commits": ["760767182", "d57b7cc33"], "source_entry_id": "16.3/changes/026", "db_id": "44579864c4fd5794d253e0f553b944e8", "patch_ids": ["ac0b7e54a706d93a9ff0639c0313f57d", "dde7299f21628d3d6d540afe3032513d"], "statement_hash": "141bd18ab435184a2816d0373aa2d5bcf6485919e4e4b187af94cc4780774087", "relations": [{"rule": 2, "type": "equivalent", "target": "1d23b5afbc92952e63524ff5c1221926", "evidence": {"same_day": true, "patch_ids": ["ac0b7e54a706d93a9ff0639c0313f57d", "dde7299f21628d3d6d540afe3032513d"], "statement_hash": "141bd18ab435184a2816d0373aa2d5bcf6485919e4e4b187af94cc4780774087"}}, {"rule": 2, "type": "equivalent", "target": "45d96b7a15765eefff3b721838af3101", "evidence": {"same_day": true, "patch_ids": ["ac0b7e54a706d93a9ff0639c0313f57d", "dde7299f21628d3d6d540afe3032513d"], "statement_hash": "141bd18ab435184a2816d0373aa2d5bcf6485919e4e4b187af94cc4780774087"}}, {"rule": 2, "type": "equivalent", "target": "7664e328481b35b56d05cc9016d02ebc", "evidence": {"same_day": true, "patch_ids": ["ac0b7e54a706d93a9ff0639c0313f57d", "dde7299f21628d3d6d540afe3032513d"], "statement_hash": "141bd18ab435184a2816d0373aa2d5bcf6485919e4e4b187af94cc4780774087"}}, {"rule": 2, "type": "equivalent", "target": "a9ab03208a61be7974c97b0dc7795038", "evidence": {"same_day": true, "patch_ids": ["ac0b7e54a706d93a9ff0639c0313f57d", "dde7299f21628d3d6d540afe3032513d"], "statement_hash": "141bd18ab435184a2816d0373aa2d5bcf6485919e4e4b187af94cc4780774087"}}], "version": "16.3", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "45d96b7a15765eefff3b721838af3101", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Add protective stack depth checks to some recursive functions", "evidence": {"same_day": true, "patch_ids": ["ac0b7e54a706d93a9ff0639c0313f57d", "dde7299f21628d3d6d540afe3032513d"], "statement_hash": "141bd18ab435184a2816d0373aa2d5bcf6485919e4e4b187af94cc4780774087"}, "url": "/docs/compare/?release=15.7#15.7-58945555e92d562d", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "1d23b5afbc92952e63524ff5c1221926", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Add protective stack depth checks to some recursive functions", "evidence": {"same_day": true, "patch_ids": ["ac0b7e54a706d93a9ff0639c0313f57d", "dde7299f21628d3d6d540afe3032513d"], "statement_hash": "141bd18ab435184a2816d0373aa2d5bcf6485919e4e4b187af94cc4780774087"}, "url": "/docs/compare/?release=14.12#14.12-6517417c90f082f1", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "a9ab03208a61be7974c97b0dc7795038", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "Add protective stack depth checks to some recursive functions", "evidence": {"same_day": true, "patch_ids": ["ac0b7e54a706d93a9ff0639c0313f57d", "dde7299f21628d3d6d540afe3032513d"], "statement_hash": "141bd18ab435184a2816d0373aa2d5bcf6485919e4e4b187af94cc4780774087"}, "url": "/docs/compare/?release=13.15#13.15-d44b0dc0a090aa0f", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "7664e328481b35b56d05cc9016d02ebc", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "Add protective stack depth checks to some recursive functions", "evidence": {"same_day": true, "patch_ids": ["ac0b7e54a706d93a9ff0639c0313f57d", "dde7299f21628d3d6d540afe3032513d"], "statement_hash": "141bd18ab435184a2816d0373aa2d5bcf6485919e4e4b187af94cc4780774087"}, "url": "/docs/compare/?release=12.19#12.19-439d1088b0f5badb", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-f8909402e5edd063", "cves": [], "html": "<p>Fix mis-rounding and overflow hazards in <code>date_bin()</code> (Moaaz Assali) <a href=\"https://postgr.es/c/17db5436e\">§</a></p>\n<p>In the case where the source timestamp is before the origin timestamp and their difference is already an exact multiple of the stride, the code incorrectly subtracted the stride anyway. Also, detect some integer-overflow cases that would have produced incorrect results.</p>", "text": "Fix mis-rounding and overflow hazards in date_bin() (Moaaz Assali) § In the case where the source timestamp is before the origin timestamp and their difference is already an exact multiple of the stride, the code incorrectly subtracted the stride anyway. Also, detect some integer-overflow cases that would have produced incorrect results.", "title": "Fix mis-rounding and overflow hazards in date_bin()", "commits": ["17db5436e"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "9f3de5c32c0b97d14a017bf672895d7aeb260cecc7ec621bf2c2bec217722a46", "section_path": ["Changes"], "commit_groups": [["17db5436e", "d163fdbfe", "db8855b66", "fe3b1b575"]], "identity_text": "Fix mis-rounding and overflow hazards in date_bin() (Moaaz Assali) In the case where the source timestamp is before the origin timestamp and their difference is already an exact multiple of the stride, the code incorrectly subtracted the stride anyway. Also, detect some integer-overflow cases that would have produced incorrect results.", "commit_aliases": ["17db5436e", "d163fdbfe", "db8855b66", "fe3b1b575"], "source_commits": ["17db5436e"], "source_entry_id": "16.3/changes/027", "db_id": "654e10146afc642f0526a3a2b8fe7411", "patch_ids": ["a829ce6d346e41468fb2fe68d1195cc1"], "statement_hash": "d6973ada9a997897943dae11d116074ffad4dcaaea8524e2da6d7cf64ccc78c6", "relations": [{"rule": 2, "type": "equivalent", "target": "bbf5e73ad8e3ec3dff692406019f71e8", "evidence": {"same_day": true, "patch_ids": ["a829ce6d346e41468fb2fe68d1195cc1"], "statement_hash": "d6973ada9a997897943dae11d116074ffad4dcaaea8524e2da6d7cf64ccc78c6"}}, {"rule": 2, "type": "equivalent", "target": "f800645737ac5e7eefac85ec0744854d", "evidence": {"same_day": true, "patch_ids": ["a829ce6d346e41468fb2fe68d1195cc1"], "statement_hash": "d6973ada9a997897943dae11d116074ffad4dcaaea8524e2da6d7cf64ccc78c6"}}], "version": "16.3", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "bbf5e73ad8e3ec3dff692406019f71e8", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Fix mis-rounding and overflow hazards in date_bin()", "evidence": {"same_day": true, "patch_ids": ["a829ce6d346e41468fb2fe68d1195cc1"], "statement_hash": "d6973ada9a997897943dae11d116074ffad4dcaaea8524e2da6d7cf64ccc78c6"}, "url": "/docs/compare/?release=15.7#15.7-018f962a93d967a7", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "f800645737ac5e7eefac85ec0744854d", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Fix mis-rounding and overflow hazards in date_bin()", "evidence": {"same_day": true, "patch_ids": ["a829ce6d346e41468fb2fe68d1195cc1"], "statement_hash": "d6973ada9a997897943dae11d116074ffad4dcaaea8524e2da6d7cf64ccc78c6"}, "url": "/docs/compare/?release=14.12#14.12-b20fec6c65e1c681", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}]}, {"id": "16.3-ec96482addb1d831", "cves": [], "html": "<p>Detect integer overflow when adding or subtracting an <code>interval</code> to/from a <code>timestamp</code> (Joseph Koshakow) <a href=\"https://postgr.es/c/3752e3d21\">§</a></p>\n<p>Some cases that should cause an out-of-range error produced an incorrect result instead.</p>", "text": "Detect integer overflow when adding or subtracting an interval to/from a timestamp (Joseph Koshakow) § Some cases that should cause an out-of-range error produced an incorrect result instead.", "title": "Detect integer overflow when adding or subtracting an interval to/from a timestamp", "commits": ["3752e3d21"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "2d04df7da14172806a501daa8d73bf34b631adb6b2a8dce985bf179324b1589e", "section_path": ["Changes"], "commit_groups": [["1748379b6", "3752e3d21", "4019285c0", "440b6251b", "cb0ccefa0", "e6e3ee5b7"]], "identity_text": "Detect integer overflow when adding or subtracting an interval to/from a timestamp (Joseph Koshakow) Some cases that should cause an out-of-range error produced an incorrect result instead.", "commit_aliases": ["1748379b6", "3752e3d21", "4019285c0", "440b6251b", "cb0ccefa0", "e6e3ee5b7"], "source_commits": ["3752e3d21"], "source_entry_id": "16.3/changes/028", "db_id": "527ac794f555a35f8c1d925520112bf4", "patch_ids": ["7933aeb736fe753bd78b4df3214cbbf8"], "statement_hash": "7e0dc135eef539553b5ee59e6a9c5a0f5f16bdda59a35071fe4132af8cdbd5ee", "relations": [{"rule": 2, "type": "equivalent", "target": "26d4e765990af2b0549001fc5924723e", "evidence": {"same_day": true, "patch_ids": ["7933aeb736fe753bd78b4df3214cbbf8"], "statement_hash": "7e0dc135eef539553b5ee59e6a9c5a0f5f16bdda59a35071fe4132af8cdbd5ee"}}, {"rule": 2, "type": "equivalent", "target": "5c05f2d00e0cb5b2f0c779fe379c11a9", "evidence": {"same_day": true, "patch_ids": ["7933aeb736fe753bd78b4df3214cbbf8"], "statement_hash": "7e0dc135eef539553b5ee59e6a9c5a0f5f16bdda59a35071fe4132af8cdbd5ee"}}, {"rule": 2, "type": "equivalent", "target": "7b4a352125e2617a9dd0d345502056d6", "evidence": {"same_day": true, "patch_ids": ["7933aeb736fe753bd78b4df3214cbbf8"], "statement_hash": "7e0dc135eef539553b5ee59e6a9c5a0f5f16bdda59a35071fe4132af8cdbd5ee"}}, {"rule": 2, "type": "equivalent", "target": "df6178817f19dc48b3fed6a672e63792", "evidence": {"same_day": true, "patch_ids": ["7933aeb736fe753bd78b4df3214cbbf8"], "statement_hash": "7e0dc135eef539553b5ee59e6a9c5a0f5f16bdda59a35071fe4132af8cdbd5ee"}}], "version": "16.3", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "26d4e765990af2b0549001fc5924723e", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Detect integer overflow when adding or subtracting an interval to/from a timestamp", "evidence": {"same_day": true, "patch_ids": ["7933aeb736fe753bd78b4df3214cbbf8"], "statement_hash": "7e0dc135eef539553b5ee59e6a9c5a0f5f16bdda59a35071fe4132af8cdbd5ee"}, "url": "/docs/compare/?release=15.7#15.7-1193db30b90424d3", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "7b4a352125e2617a9dd0d345502056d6", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Detect integer overflow when adding or subtracting an interval to/from a timestamp", "evidence": {"same_day": true, "patch_ids": ["7933aeb736fe753bd78b4df3214cbbf8"], "statement_hash": "7e0dc135eef539553b5ee59e6a9c5a0f5f16bdda59a35071fe4132af8cdbd5ee"}, "url": "/docs/compare/?release=14.12#14.12-d2187459b6f8f1ef", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "df6178817f19dc48b3fed6a672e63792", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "Detect integer overflow when adding or subtracting an interval to/from a timestamp", "evidence": {"same_day": true, "patch_ids": ["7933aeb736fe753bd78b4df3214cbbf8"], "statement_hash": "7e0dc135eef539553b5ee59e6a9c5a0f5f16bdda59a35071fe4132af8cdbd5ee"}, "url": "/docs/compare/?release=13.15#13.15-520d2042c108e42d", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "5c05f2d00e0cb5b2f0c779fe379c11a9", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "Detect integer overflow when adding or subtracting an interval to/from a timestamp", "evidence": {"same_day": true, "patch_ids": ["7933aeb736fe753bd78b4df3214cbbf8"], "statement_hash": "7e0dc135eef539553b5ee59e6a9c5a0f5f16bdda59a35071fe4132af8cdbd5ee"}, "url": "/docs/compare/?release=12.19#12.19-2aa330b6a50fb99e", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-3a03ba9e5ef84abb", "cves": [], "html": "<p>Avoid race condition in <code>pg_get_expr()</code> (Tom Lane) <a href=\"https://postgr.es/c/4eb261165\">§</a></p>\n<p>If the relation referenced by the argument is dropped concurrently, the function's intention is to return NULL, but sometimes it failed instead.</p>", "text": "Avoid race condition in pg_get_expr() (Tom Lane) § If the relation referenced by the argument is dropped concurrently, the function's intention is to return NULL, but sometimes it failed instead.", "title": "Avoid race condition in pg_get_expr()", "commits": ["4eb261165"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "d61bc5dcd06604ec9e20202a2d7038722a4c74e6390aaabe7f1e26ee19008c43", "section_path": ["Changes"], "commit_groups": [["26c89d105", "4eb261165", "ce571434a", "ceb224b62", "d21690edb", "f38903d1e"]], "identity_text": "Avoid race condition in pg_get_expr() (Tom Lane) If the relation referenced by the argument is dropped concurrently, the function's intention is to return NULL, but sometimes it failed instead.", "commit_aliases": ["26c89d105", "4eb261165", "ce571434a", "ceb224b62", "d21690edb", "f38903d1e"], "source_commits": ["4eb261165"], "source_entry_id": "16.3/changes/029", "db_id": "b57f7c4322343dc2c18818a94bb79ae4", "patch_ids": ["e448e265d1ee703598d5a55fc9b219ca"], "statement_hash": "cacb210a1f757b7b8d7c71a88575c7fd4838c1e2cc115a02f6d5f1292030c093", "relations": [{"rule": 2, "type": "equivalent", "target": "01829a0cebff87a2b9877a415f955076", "evidence": {"same_day": true, "patch_ids": ["e448e265d1ee703598d5a55fc9b219ca"], "statement_hash": "cacb210a1f757b7b8d7c71a88575c7fd4838c1e2cc115a02f6d5f1292030c093"}}, {"rule": 2, "type": "equivalent", "target": "1d7446d118275bf962c1aa3c48308a97", "evidence": {"same_day": true, "patch_ids": ["e448e265d1ee703598d5a55fc9b219ca"], "statement_hash": "cacb210a1f757b7b8d7c71a88575c7fd4838c1e2cc115a02f6d5f1292030c093"}}, {"rule": 2, "type": "equivalent", "target": "29630007fa96642d778f6eafaab40d43", "evidence": {"same_day": true, "patch_ids": ["e448e265d1ee703598d5a55fc9b219ca"], "statement_hash": "cacb210a1f757b7b8d7c71a88575c7fd4838c1e2cc115a02f6d5f1292030c093"}}, {"rule": 2, "type": "equivalent", "target": "b47222c52e1a95cbfda045c2adf1e9d6", "evidence": {"same_day": true, "patch_ids": ["e448e265d1ee703598d5a55fc9b219ca"], "statement_hash": "cacb210a1f757b7b8d7c71a88575c7fd4838c1e2cc115a02f6d5f1292030c093"}}], "version": "16.3", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "b47222c52e1a95cbfda045c2adf1e9d6", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Avoid race condition in pg_get_expr()", "evidence": {"same_day": true, "patch_ids": ["e448e265d1ee703598d5a55fc9b219ca"], "statement_hash": "cacb210a1f757b7b8d7c71a88575c7fd4838c1e2cc115a02f6d5f1292030c093"}, "url": "/docs/compare/?release=15.7#15.7-b8d97a20f9d1514a", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "29630007fa96642d778f6eafaab40d43", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Avoid race condition in pg_get_expr()", "evidence": {"same_day": true, "patch_ids": ["e448e265d1ee703598d5a55fc9b219ca"], "statement_hash": "cacb210a1f757b7b8d7c71a88575c7fd4838c1e2cc115a02f6d5f1292030c093"}, "url": "/docs/compare/?release=14.12#14.12-3c0a35e3885a4a42", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "1d7446d118275bf962c1aa3c48308a97", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "Avoid race condition in pg_get_expr()", "evidence": {"same_day": true, "patch_ids": ["e448e265d1ee703598d5a55fc9b219ca"], "statement_hash": "cacb210a1f757b7b8d7c71a88575c7fd4838c1e2cc115a02f6d5f1292030c093"}, "url": "/docs/compare/?release=13.15#13.15-9333974e583b3430", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "01829a0cebff87a2b9877a415f955076", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "Avoid race condition in pg_get_expr()", "evidence": {"same_day": true, "patch_ids": ["e448e265d1ee703598d5a55fc9b219ca"], "statement_hash": "cacb210a1f757b7b8d7c71a88575c7fd4838c1e2cc115a02f6d5f1292030c093"}, "url": "/docs/compare/?release=12.19#12.19-66e4399a5efbde4f", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-bec01cae9f9cae3a", "cves": [], "html": "<p>Fix detection of old transaction IDs in XID status functions (Karina Litskevich) <a href=\"https://postgr.es/c/e3e05adde\">§</a></p>\n<p>Transaction IDs more than 2<sup>31</sup> transactions in the past could be misidentified as recent, leading to misbehavior of <code>pg_xact_status()</code> or <code>txid_status()</code>.</p>", "text": "Fix detection of old transaction IDs in XID status functions (Karina Litskevich) § Transaction IDs more than 231 transactions in the past could be misidentified as recent, leading to misbehavior of pg_xact_status() or txid_status().", "title": "Fix detection of old transaction IDs in XID status functions", "commits": ["e3e05adde"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "9e0ecf84abce897cb8f649281bff5f9975905e535ddcc3c01b807dc38723cc5c", "section_path": ["Changes"], "commit_groups": [["165d921c9", "18388291a", "4efaf4b09", "503299b7f", "d44060cfc", "e3e05adde"]], "identity_text": "Fix detection of old transaction IDs in XID status functions (Karina Litskevich) Transaction IDs more than 231 transactions in the past could be misidentified as recent, leading to misbehavior of pg_xact_status() or txid_status().", "commit_aliases": ["165d921c9", "18388291a", "4efaf4b09", "503299b7f", "d44060cfc", "e3e05adde"], "source_commits": ["e3e05adde"], "source_entry_id": "16.3/changes/030", "db_id": "6221a068baafdd4d23191bd4bd3a63a9", "patch_ids": ["e350105f7ef6c54d691e0710e01b312b"], "statement_hash": "de8481b954a75dd736a31f8f373584a8b88149d6e12ea6f1cab07a802a5635f7", "relations": [{"rule": 2, "type": "equivalent", "target": "4667ab209ab68826bbebc6b12d17825c", "evidence": {"same_day": true, "patch_ids": ["e350105f7ef6c54d691e0710e01b312b"], "statement_hash": "de8481b954a75dd736a31f8f373584a8b88149d6e12ea6f1cab07a802a5635f7"}}, {"rule": 2, "type": "equivalent", "target": "5eee06a351b6c00b15b91d6b37af4cf6", "evidence": {"same_day": true, "patch_ids": ["e350105f7ef6c54d691e0710e01b312b"], "statement_hash": "de8481b954a75dd736a31f8f373584a8b88149d6e12ea6f1cab07a802a5635f7"}}, {"rule": 2, "type": "equivalent", "target": "9dbf000510d705df3eb4946ac68db277", "evidence": {"same_day": true, "patch_ids": ["e350105f7ef6c54d691e0710e01b312b"], "statement_hash": "de8481b954a75dd736a31f8f373584a8b88149d6e12ea6f1cab07a802a5635f7"}}, {"rule": 2, "type": "equivalent", "target": "e2d96ff11a2aec2e068f73700b85e47f", "evidence": {"same_day": true, "patch_ids": ["e350105f7ef6c54d691e0710e01b312b"], "statement_hash": "de8481b954a75dd736a31f8f373584a8b88149d6e12ea6f1cab07a802a5635f7"}}], "version": "16.3", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "5eee06a351b6c00b15b91d6b37af4cf6", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Fix detection of old transaction IDs in XID status functions", "evidence": {"same_day": true, "patch_ids": ["e350105f7ef6c54d691e0710e01b312b"], "statement_hash": "de8481b954a75dd736a31f8f373584a8b88149d6e12ea6f1cab07a802a5635f7"}, "url": "/docs/compare/?release=15.7#15.7-d3c32b77cd723569", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "4667ab209ab68826bbebc6b12d17825c", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Fix detection of old transaction IDs in XID status functions", "evidence": {"same_day": true, "patch_ids": ["e350105f7ef6c54d691e0710e01b312b"], "statement_hash": "de8481b954a75dd736a31f8f373584a8b88149d6e12ea6f1cab07a802a5635f7"}, "url": "/docs/compare/?release=14.12#14.12-aac367a87741e2d8", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "e2d96ff11a2aec2e068f73700b85e47f", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "Fix detection of old transaction IDs in XID status functions", "evidence": {"same_day": true, "patch_ids": ["e350105f7ef6c54d691e0710e01b312b"], "statement_hash": "de8481b954a75dd736a31f8f373584a8b88149d6e12ea6f1cab07a802a5635f7"}, "url": "/docs/compare/?release=13.15#13.15-d5bbda003d57f1df", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "9dbf000510d705df3eb4946ac68db277", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "Fix detection of old transaction IDs in XID status functions", "evidence": {"same_day": true, "patch_ids": ["e350105f7ef6c54d691e0710e01b312b"], "statement_hash": "de8481b954a75dd736a31f8f373584a8b88149d6e12ea6f1cab07a802a5635f7"}, "url": "/docs/compare/?release=12.19#12.19-688b760d38a92578", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-7a59e76501ffa7be", "cves": [], "html": "<p>Ensure that a table's freespace map won't return a page that's past the end of the table (Ronan Dunklau) <a href=\"https://postgr.es/c/4e62ba21a\">§</a></p>\n<p>Because the freespace map isn't WAL-logged, this was possible in edge cases involving an OS crash, a replica promote, or a PITR restore. The result would be a <span>“<span>could not read block</span>”</span> error.</p>", "text": "Ensure that a table's freespace map won't return a page that's past the end of the table (Ronan Dunklau) § Because the freespace map isn't WAL-logged, this was possible in edge cases involving an OS crash, a replica promote, or a PITR restore. The result would be a “could not read block” error.", "title": "Ensure that a table's freespace map won't return a page that's past the end of the table", "commits": ["4e62ba21a"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "a862a35d342fc0ce9a9614bb2eb9627ab81176d8e12943d2f593f46e4184288a", "section_path": ["Changes"], "commit_groups": [["08059fc04", "4e62ba21a", "7c490a18b", "935829743"]], "identity_text": "Ensure that a table's freespace map won't return a page that's past the end of the table (Ronan Dunklau) Because the freespace map isn't WAL-logged, this was possible in edge cases involving an OS crash, a replica promote, or a PITR restore. The result would be a could not read block error.", "commit_aliases": ["08059fc04", "4e62ba21a", "7c490a18b", "935829743"], "source_commits": ["4e62ba21a"], "source_entry_id": "16.3/changes/031", "db_id": "a2716472ea4cf7b0c1e262387761b35c", "patch_ids": ["7a12243c9ab1bc8c1cf036737173a4ea"], "statement_hash": "3a36d267f75151d1edf256e9ecb51b94aeb3f84c157b3d89aa05bf1315b43f44", "relations": [{"rule": 2, "type": "equivalent", "target": "26a2ca6303e6bec26d3473c170ea09a5", "evidence": {"same_day": true, "patch_ids": ["7a12243c9ab1bc8c1cf036737173a4ea"], "statement_hash": "3a36d267f75151d1edf256e9ecb51b94aeb3f84c157b3d89aa05bf1315b43f44"}}, {"rule": 2, "type": "equivalent", "target": "2a18d5a4ea97e0008f801cf9ec5590fd", "evidence": {"same_day": true, "patch_ids": ["7a12243c9ab1bc8c1cf036737173a4ea"], "statement_hash": "3a36d267f75151d1edf256e9ecb51b94aeb3f84c157b3d89aa05bf1315b43f44"}}], "version": "16.3", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "2a18d5a4ea97e0008f801cf9ec5590fd", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Ensure that a table's freespace map won't return a page that's past the end of the table", "evidence": {"same_day": true, "patch_ids": ["7a12243c9ab1bc8c1cf036737173a4ea"], "statement_hash": "3a36d267f75151d1edf256e9ecb51b94aeb3f84c157b3d89aa05bf1315b43f44"}, "url": "/docs/compare/?release=15.7#15.7-f1032232c997570d", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "26a2ca6303e6bec26d3473c170ea09a5", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Ensure that a table's freespace map won't return a page that's past the end of the table", "evidence": {"same_day": true, "patch_ids": ["7a12243c9ab1bc8c1cf036737173a4ea"], "statement_hash": "3a36d267f75151d1edf256e9ecb51b94aeb3f84c157b3d89aa05bf1315b43f44"}, "url": "/docs/compare/?release=14.12#14.12-ac62795d7416ea57", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}]}, {"id": "16.3-9128869d97dddb01", "cves": [], "html": "<p>Fix file descriptor leakage when an error is thrown while waiting in <code>WaitEventSetWait</code> (Etsuro Fujita) <a href=\"https://postgr.es/c/e79ceafe9\">§</a></p>", "text": "Fix file descriptor leakage when an error is thrown while waiting in WaitEventSetWait (Etsuro Fujita) §", "title": "Fix file descriptor leakage when an error is thrown while waiting in WaitEventSetWait", "commits": ["e79ceafe9"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "879ea00e0b3ffb9050a66f166b05447d66befb5a360f25faef590146a21bb9b6", "section_path": ["Changes"], "commit_groups": [["01b01a77f", "0341d4b10", "b714bc40c", "b82dca2a5", "e79ceafe9"]], "identity_text": "Fix file descriptor leakage when an error is thrown while waiting in WaitEventSetWait (Etsuro Fujita)", "commit_aliases": ["01b01a77f", "0341d4b10", "b714bc40c", "b82dca2a5", "e79ceafe9"], "source_commits": ["e79ceafe9"], "source_entry_id": "16.3/changes/032", "db_id": "b88ca1e556524e31d3984e16397439c8", "patch_ids": ["f374f41a96cc4db749183ca009ea3256"], "statement_hash": "49d5c5eaf81471e0bf8fcb5d23a1f66c4abf9c4b5b6fedde01fba5b1a09808c0", "relations": [{"rule": 2, "type": "equivalent", "target": "7768f23a49446684d277b0278e25986b", "evidence": {"same_day": true, "patch_ids": ["f374f41a96cc4db749183ca009ea3256"], "statement_hash": "49d5c5eaf81471e0bf8fcb5d23a1f66c4abf9c4b5b6fedde01fba5b1a09808c0"}}, {"rule": 2, "type": "equivalent", "target": "78bcbb55c5e9bed242405fb795af1da1", "evidence": {"same_day": true, "patch_ids": ["f374f41a96cc4db749183ca009ea3256"], "statement_hash": "49d5c5eaf81471e0bf8fcb5d23a1f66c4abf9c4b5b6fedde01fba5b1a09808c0"}}, {"rule": 2, "type": "equivalent", "target": "d1ab8b9b8d40b8ece83be454cc0595f6", "evidence": {"same_day": true, "patch_ids": ["f374f41a96cc4db749183ca009ea3256"], "statement_hash": "49d5c5eaf81471e0bf8fcb5d23a1f66c4abf9c4b5b6fedde01fba5b1a09808c0"}}, {"rule": 2, "type": "equivalent", "target": "ed31a0bf33064d172fe981af82657777", "evidence": {"same_day": true, "patch_ids": ["f374f41a96cc4db749183ca009ea3256"], "statement_hash": "49d5c5eaf81471e0bf8fcb5d23a1f66c4abf9c4b5b6fedde01fba5b1a09808c0"}}], "version": "16.3", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "7768f23a49446684d277b0278e25986b", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Fix file descriptor leakage when an error is thrown while waiting in WaitEventSetWait", "evidence": {"same_day": true, "patch_ids": ["f374f41a96cc4db749183ca009ea3256"], "statement_hash": "49d5c5eaf81471e0bf8fcb5d23a1f66c4abf9c4b5b6fedde01fba5b1a09808c0"}, "url": "/docs/compare/?release=15.7#15.7-ff3957818582ae16", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "ed31a0bf33064d172fe981af82657777", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Fix file descriptor leakage when an error is thrown while waiting in WaitEventSetWait", "evidence": {"same_day": true, "patch_ids": ["f374f41a96cc4db749183ca009ea3256"], "statement_hash": "49d5c5eaf81471e0bf8fcb5d23a1f66c4abf9c4b5b6fedde01fba5b1a09808c0"}, "url": "/docs/compare/?release=14.12#14.12-d4529a216a182553", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "d1ab8b9b8d40b8ece83be454cc0595f6", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "Fix file descriptor leakage when an error is thrown while waiting in WaitEventSetWait", "evidence": {"same_day": true, "patch_ids": ["f374f41a96cc4db749183ca009ea3256"], "statement_hash": "49d5c5eaf81471e0bf8fcb5d23a1f66c4abf9c4b5b6fedde01fba5b1a09808c0"}, "url": "/docs/compare/?release=13.15#13.15-f02de15274dfb282", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "78bcbb55c5e9bed242405fb795af1da1", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "Fix file descriptor leakage when an error is thrown while waiting in WaitEventSetWait", "evidence": {"same_day": true, "patch_ids": ["f374f41a96cc4db749183ca009ea3256"], "statement_hash": "49d5c5eaf81471e0bf8fcb5d23a1f66c4abf9c4b5b6fedde01fba5b1a09808c0"}, "url": "/docs/compare/?release=12.19#12.19-4b485ae6e1c0d5f7", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-2d830088156b1bcd", "cves": [], "html": "<p>Avoid corrupting exception stack if an FDW implements async append but doesn't configure any wait conditions for the Append plan node to wait for (Alexander Pyhalov) <a href=\"https://postgr.es/c/f6f61a4bd\">§</a></p>", "text": "Avoid corrupting exception stack if an FDW implements async append but doesn't configure any wait conditions for the Append plan node to wait for (Alexander Pyhalov) §", "title": "Avoid corrupting exception stack if an FDW implements async append but doesn't configure any wait conditions for the Append plan node to wait for", "commits": ["f6f61a4bd"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "c05189fac0422aff0fea34fa3c1b1248cc6ec93aad34fdaa7b1a949cab7b93cd", "section_path": ["Changes"], "commit_groups": [["3f96d113f", "e10ca95ff", "f6f61a4bd"]], "identity_text": "Avoid corrupting exception stack if an FDW implements async append but doesn't configure any wait conditions for the Append plan node to wait for (Alexander Pyhalov)", "commit_aliases": ["3f96d113f", "e10ca95ff", "f6f61a4bd"], "source_commits": ["f6f61a4bd"], "source_entry_id": "16.3/changes/033", "db_id": "748553bb599b0a6dda441dd8959c3247", "patch_ids": ["56418eb9d39b3440d4e97d3f080e9c2c"], "statement_hash": "43029665e189b5b690fe19896604db54b8a2cfcf30ae0b9d6e1010b771a5566c", "relations": [{"rule": 2, "type": "equivalent", "target": "4236f7199e21cc09ec1388f8731848ce", "evidence": {"same_day": true, "patch_ids": ["56418eb9d39b3440d4e97d3f080e9c2c"], "statement_hash": "43029665e189b5b690fe19896604db54b8a2cfcf30ae0b9d6e1010b771a5566c"}}, {"rule": 2, "type": "equivalent", "target": "5bafecf925d9d8e8e9a003859619c257", "evidence": {"same_day": true, "patch_ids": ["56418eb9d39b3440d4e97d3f080e9c2c"], "statement_hash": "43029665e189b5b690fe19896604db54b8a2cfcf30ae0b9d6e1010b771a5566c"}}], "version": "16.3", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "4236f7199e21cc09ec1388f8731848ce", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Avoid corrupting exception stack if an FDW implements async append but doesn't configure any wait conditions for the Append plan node to wait for", "evidence": {"same_day": true, "patch_ids": ["56418eb9d39b3440d4e97d3f080e9c2c"], "statement_hash": "43029665e189b5b690fe19896604db54b8a2cfcf30ae0b9d6e1010b771a5566c"}, "url": "/docs/compare/?release=15.7#15.7-a48e8f10d7571dd8", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "5bafecf925d9d8e8e9a003859619c257", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Avoid corrupting exception stack if an FDW implements async append but doesn't configure any wait conditions for the Append plan node to wait for", "evidence": {"same_day": true, "patch_ids": ["56418eb9d39b3440d4e97d3f080e9c2c"], "statement_hash": "43029665e189b5b690fe19896604db54b8a2cfcf30ae0b9d6e1010b771a5566c"}, "url": "/docs/compare/?release=14.12#14.12-9f90a1f3e29f2060", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}]}, {"id": "16.3-136e6040676dc366", "cves": [], "html": "<p>Throw an error if an index is accessed while it is being reindexed (Tom Lane) <a href=\"https://postgr.es/c/8c785d354\">§</a></p>\n<p>Previously this was just an assertion check, but promote it into a regular runtime error. This will provide a more on-point error message when reindexing a user-defined index expression that attempts to access its own table.</p>", "text": "Throw an error if an index is accessed while it is being reindexed (Tom Lane) § Previously this was just an assertion check, but promote it into a regular runtime error. This will provide a more on-point error message when reindexing a user-defined index expression that attempts to access its own table.", "title": "Throw an error if an index is accessed while it is being reindexed", "commits": ["8c785d354"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "31a89121a963a08f8f7c7bd8547d7c7669516569da91134848c70f21cb9665dc", "section_path": ["Changes"], "commit_groups": [["09f09884c", "43cca9de9", "8c785d354", "940489b46", "c0b4dad38", "f5a465f1a"]], "identity_text": "Throw an error if an index is accessed while it is being reindexed (Tom Lane) Previously this was just an assertion check, but promote it into a regular runtime error. This will provide a more on-point error message when reindexing a user-defined index expression that attempts to access its own table.", "commit_aliases": ["09f09884c", "43cca9de9", "8c785d354", "940489b46", "c0b4dad38", "f5a465f1a"], "source_commits": ["8c785d354"], "source_entry_id": "16.3/changes/034", "db_id": "2906070307670fde5b3b107c009eb158", "patch_ids": ["85900f485cd6f606f49b308461389e75"], "statement_hash": "06c717e04e37e5c634d78425048ad38e3c1a96ca514bde644a8c5eea946aeddb", "relations": [{"rule": 2, "type": "equivalent", "target": "2f57619b35a3040957bcd649a116ab81", "evidence": {"same_day": true, "patch_ids": ["85900f485cd6f606f49b308461389e75"], "statement_hash": "06c717e04e37e5c634d78425048ad38e3c1a96ca514bde644a8c5eea946aeddb"}}, {"rule": 2, "type": "equivalent", "target": "86a674fe90c8887224b1f43a41d7ac57", "evidence": {"same_day": true, "patch_ids": ["85900f485cd6f606f49b308461389e75"], "statement_hash": "06c717e04e37e5c634d78425048ad38e3c1a96ca514bde644a8c5eea946aeddb"}}, {"rule": 2, "type": "equivalent", "target": "916e11cb6e1bf25bf03f2f333573a664", "evidence": {"same_day": true, "patch_ids": ["85900f485cd6f606f49b308461389e75"], "statement_hash": "06c717e04e37e5c634d78425048ad38e3c1a96ca514bde644a8c5eea946aeddb"}}, {"rule": 2, "type": "equivalent", "target": "98f29fd5e6bef9b92f2166dedef0e4b0", "evidence": {"same_day": true, "patch_ids": ["85900f485cd6f606f49b308461389e75"], "statement_hash": "06c717e04e37e5c634d78425048ad38e3c1a96ca514bde644a8c5eea946aeddb"}}], "version": "16.3", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "86a674fe90c8887224b1f43a41d7ac57", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Throw an error if an index is accessed while it is being reindexed", "evidence": {"same_day": true, "patch_ids": ["85900f485cd6f606f49b308461389e75"], "statement_hash": "06c717e04e37e5c634d78425048ad38e3c1a96ca514bde644a8c5eea946aeddb"}, "url": "/docs/compare/?release=15.7#15.7-89b52c1d9f4922c0", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "98f29fd5e6bef9b92f2166dedef0e4b0", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Throw an error if an index is accessed while it is being reindexed", "evidence": {"same_day": true, "patch_ids": ["85900f485cd6f606f49b308461389e75"], "statement_hash": "06c717e04e37e5c634d78425048ad38e3c1a96ca514bde644a8c5eea946aeddb"}, "url": "/docs/compare/?release=14.12#14.12-504b067c1a2bf361", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "2f57619b35a3040957bcd649a116ab81", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "Throw an error if an index is accessed while it is being reindexed", "evidence": {"same_day": true, "patch_ids": ["85900f485cd6f606f49b308461389e75"], "statement_hash": "06c717e04e37e5c634d78425048ad38e3c1a96ca514bde644a8c5eea946aeddb"}, "url": "/docs/compare/?release=13.15#13.15-9ca69df4161fa52b", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "916e11cb6e1bf25bf03f2f333573a664", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "Throw an error if an index is accessed while it is being reindexed", "evidence": {"same_day": true, "patch_ids": ["85900f485cd6f606f49b308461389e75"], "statement_hash": "06c717e04e37e5c634d78425048ad38e3c1a96ca514bde644a8c5eea946aeddb"}, "url": "/docs/compare/?release=12.19#12.19-155a5cdb89a2a522", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-81bd8ae03e520280", "cves": [], "html": "<p>Ensure that index-only scans on <code>name</code> columns return a fully-padded value (David Rowley) <a href=\"https://postgr.es/c/68d358545\">§</a></p>\n<p>The value physically stored in the index is truncated, and previously a pointer to that value was returned to callers. This provoked complaints when testing under valgrind. In theory it could result in crashes, though none have been reported.</p>", "text": "Ensure that index-only scans on name columns return a fully-padded value (David Rowley) § The value physically stored in the index is truncated, and previously a pointer to that value was returned to callers. This provoked complaints when testing under valgrind. In theory it could result in crashes, though none have been reported.", "title": "Ensure that index-only scans on name columns return a fully-padded value", "commits": ["68d358545"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "79d9a9e956d373a05899d543afe4376fa36b7790c504a4585419761716345b92", "section_path": ["Changes"], "commit_groups": [["0a34bcd0c", "52f21f928", "68d358545", "a63224be4", "e3f9dcabd", "e6b0efc65"]], "identity_text": "Ensure that index-only scans on name columns return a fully-padded value (David Rowley) The value physically stored in the index is truncated, and previously a pointer to that value was returned to callers. This provoked complaints when testing under valgrind. In theory it could result in crashes, though none have been reported.", "commit_aliases": ["0a34bcd0c", "52f21f928", "68d358545", "a63224be4", "e3f9dcabd", "e6b0efc65"], "source_commits": ["68d358545"], "source_entry_id": "16.3/changes/035", "db_id": "4654544263ad70fa2f0e0c6f0e0f1c62", "patch_ids": ["2b39006cf6adc244b61b9c72cd4e3d84"], "statement_hash": "f9f11e8b602ea0638f6b004289848074bd87e15321ad1fd18d844ba38b70c1c1", "relations": [{"rule": 2, "type": "equivalent", "target": "2bce141ed26b333d9cbc5cdf4d037345", "evidence": {"same_day": true, "patch_ids": ["2b39006cf6adc244b61b9c72cd4e3d84"], "statement_hash": "f9f11e8b602ea0638f6b004289848074bd87e15321ad1fd18d844ba38b70c1c1"}}, {"rule": 2, "type": "equivalent", "target": "41491128cdf704c0cd44933a2dbb4643", "evidence": {"same_day": true, "patch_ids": ["2b39006cf6adc244b61b9c72cd4e3d84"], "statement_hash": "f9f11e8b602ea0638f6b004289848074bd87e15321ad1fd18d844ba38b70c1c1"}}, {"rule": 2, "type": "equivalent", "target": "660ca930472531ba9febe0a70aaf024f", "evidence": {"same_day": true, "patch_ids": ["2b39006cf6adc244b61b9c72cd4e3d84"], "statement_hash": "f9f11e8b602ea0638f6b004289848074bd87e15321ad1fd18d844ba38b70c1c1"}}, {"rule": 2, "type": "equivalent", "target": "df0087f410eb0958c51f1c793783a932", "evidence": {"same_day": true, "patch_ids": ["2b39006cf6adc244b61b9c72cd4e3d84"], "statement_hash": "f9f11e8b602ea0638f6b004289848074bd87e15321ad1fd18d844ba38b70c1c1"}}], "version": "16.3", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "660ca930472531ba9febe0a70aaf024f", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Ensure that index-only scans on name columns return a fully-padded value", "evidence": {"same_day": true, "patch_ids": ["2b39006cf6adc244b61b9c72cd4e3d84"], "statement_hash": "f9f11e8b602ea0638f6b004289848074bd87e15321ad1fd18d844ba38b70c1c1"}, "url": "/docs/compare/?release=15.7#15.7-e5485c4bc801d3c4", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "df0087f410eb0958c51f1c793783a932", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Ensure that index-only scans on name columns return a fully-padded value", "evidence": {"same_day": true, "patch_ids": ["2b39006cf6adc244b61b9c72cd4e3d84"], "statement_hash": "f9f11e8b602ea0638f6b004289848074bd87e15321ad1fd18d844ba38b70c1c1"}, "url": "/docs/compare/?release=14.12#14.12-6fa8d7d19947a304", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "2bce141ed26b333d9cbc5cdf4d037345", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "Ensure that index-only scans on name columns return a fully-padded value", "evidence": {"same_day": true, "patch_ids": ["2b39006cf6adc244b61b9c72cd4e3d84"], "statement_hash": "f9f11e8b602ea0638f6b004289848074bd87e15321ad1fd18d844ba38b70c1c1"}, "url": "/docs/compare/?release=13.15#13.15-acc0b08234f2f9bb", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "41491128cdf704c0cd44933a2dbb4643", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "Ensure that index-only scans on name columns return a fully-padded value", "evidence": {"same_day": true, "patch_ids": ["2b39006cf6adc244b61b9c72cd4e3d84"], "statement_hash": "f9f11e8b602ea0638f6b004289848074bd87e15321ad1fd18d844ba38b70c1c1"}, "url": "/docs/compare/?release=12.19#12.19-7b516895526d4744", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-b35b422e956a0808", "cves": [], "html": "<p>Fix race condition that could lead to reporting an incorrect conflict cause when invalidating a replication slot (Bertrand Drouvot) <a href=\"https://postgr.es/c/59cea09f0\">§</a></p>", "text": "Fix race condition that could lead to reporting an incorrect conflict cause when invalidating a replication slot (Bertrand Drouvot) §", "title": "Fix race condition that could lead to reporting an incorrect conflict cause when invalidating a replication slot", "commits": ["59cea09f0"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "fb7066870d2f264b0cef7cdf08a57ed9f8151db03d332c55b22e7491189bc1d1", "section_path": ["Changes"], "commit_groups": [["59cea09f0", "818fefd8f"]], "identity_text": "Fix race condition that could lead to reporting an incorrect conflict cause when invalidating a replication slot (Bertrand Drouvot)", "commit_aliases": ["59cea09f0", "818fefd8f"], "source_commits": ["59cea09f0"], "source_entry_id": "16.3/changes/036", "db_id": "e197879a94066c19401de5f88f4e2ff4", "patch_ids": ["bf63182f488b1505d769d261fb8df25e"], "statement_hash": "62573d8bfe182e117bf866d547bab79202f1999db454a1cb044ff1b3f22874f4", "relations": [], "version": "16.3", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.3-2a8083c87a0f64f5", "cves": [], "html": "<p>Fix race condition in deciding whether a table sync operation is needed in logical replication (Vignesh C) <a href=\"https://postgr.es/c/a9155efc7\">§</a></p>\n<p>An invalidation event arriving while a subscriber identifies which tables need to be synced would be forgotten about, so that any tables newly in need of syncing might not get processed in a timely fashion.</p>", "text": "Fix race condition in deciding whether a table sync operation is needed in logical replication (Vignesh C) § An invalidation event arriving while a subscriber identifies which tables need to be synced would be forgotten about, so that any tables newly in need of syncing might not get processed in a timely fashion.", "title": "Fix race condition in deciding whether a table sync operation is needed in logical replication", "commits": ["a9155efc7"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "976c5d1db9ff2507707d7916af4473e6592da6e206e2668a8f6db0e1393ac3a2", "section_path": ["Changes"], "commit_groups": [["28a8cc457", "a9155efc7", "aa79bde72"]], "identity_text": "Fix race condition in deciding whether a table sync operation is needed in logical replication (Vignesh C) An invalidation event arriving while a subscriber identifies which tables need to be synced would be forgotten about, so that any tables newly in need of syncing might not get processed in a timely fashion.", "commit_aliases": ["28a8cc457", "a9155efc7", "aa79bde72"], "source_commits": ["a9155efc7"], "source_entry_id": "16.3/changes/037", "db_id": "e555043a52290cceb8abbfa396bdbd2e", "patch_ids": ["3b1ce97ed359e044e2d753a327e46fcb"], "statement_hash": "6d77ac28128a8f79663532bd98f4c88a22108fd6e0b118319fd3281e191567fb", "relations": [{"rule": 2, "type": "equivalent", "target": "4b4be3e853b2da56b9606908b6a1c167", "evidence": {"same_day": true, "patch_ids": ["3b1ce97ed359e044e2d753a327e46fcb"], "statement_hash": "6d77ac28128a8f79663532bd98f4c88a22108fd6e0b118319fd3281e191567fb"}}], "version": "16.3", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "4b4be3e853b2da56b9606908b6a1c167", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Fix race condition in deciding whether a table sync operation is needed in logical replication", "evidence": {"same_day": true, "patch_ids": ["3b1ce97ed359e044e2d753a327e46fcb"], "statement_hash": "6d77ac28128a8f79663532bd98f4c88a22108fd6e0b118319fd3281e191567fb"}, "url": "/docs/compare/?release=15.7#15.7-59aee19602c0d4d4", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}]}, {"id": "16.3-c2d07d0866a2621e", "cves": [], "html": "<p>Fix crash with DSM allocations larger than 4GB (Heikki Linnakangas) <a href=\"https://postgr.es/c/f2f09b825\">§</a></p>", "text": "Fix crash with DSM allocations larger than 4GB (Heikki Linnakangas) §", "title": "Fix crash with DSM allocations larger than 4GB", "commits": ["f2f09b825"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "fa3f6e5810dd86d1d2fab702f55fab091d03874a74fea10b33491ecece572435", "section_path": ["Changes"], "commit_groups": [["95cc48ca0", "9b8550fbd", "d46c26961", "e92375692", "f2f09b825", "fbf9a7ac4"]], "identity_text": "Fix crash with DSM allocations larger than 4GB (Heikki Linnakangas)", "commit_aliases": ["95cc48ca0", "9b8550fbd", "d46c26961", "e92375692", "f2f09b825", "fbf9a7ac4"], "source_commits": ["f2f09b825"], "source_entry_id": "16.3/changes/038", "db_id": "bc75f3b207e7f34c6c51abc541e72983", "patch_ids": ["3c1030c0ce9265c7dfe43cb4f493fe2c"], "statement_hash": "4ac6db157c9a035fe72e4f65c709a65d949f53adc8f9c132f09300b781ac838f", "relations": [{"rule": 2, "type": "equivalent", "target": "03edff6b9bfb77a9f54d4737b9f57428", "evidence": {"same_day": true, "patch_ids": ["3c1030c0ce9265c7dfe43cb4f493fe2c"], "statement_hash": "4ac6db157c9a035fe72e4f65c709a65d949f53adc8f9c132f09300b781ac838f"}}, {"rule": 2, "type": "equivalent", "target": "76afece4826ada7aea8f90099e0048b7", "evidence": {"same_day": true, "patch_ids": ["3c1030c0ce9265c7dfe43cb4f493fe2c"], "statement_hash": "4ac6db157c9a035fe72e4f65c709a65d949f53adc8f9c132f09300b781ac838f"}}, {"rule": 2, "type": "equivalent", "target": "b4a3776a249d9c82bc0d2dbce863c2f5", "evidence": {"same_day": true, "patch_ids": ["3c1030c0ce9265c7dfe43cb4f493fe2c"], "statement_hash": "4ac6db157c9a035fe72e4f65c709a65d949f53adc8f9c132f09300b781ac838f"}}, {"rule": 2, "type": "equivalent", "target": "f9161266e6e03d6738b33b19d50bf537", "evidence": {"same_day": true, "patch_ids": ["3c1030c0ce9265c7dfe43cb4f493fe2c"], "statement_hash": "4ac6db157c9a035fe72e4f65c709a65d949f53adc8f9c132f09300b781ac838f"}}], "version": "16.3", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "76afece4826ada7aea8f90099e0048b7", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Fix crash with DSM allocations larger than 4GB", "evidence": {"same_day": true, "patch_ids": ["3c1030c0ce9265c7dfe43cb4f493fe2c"], "statement_hash": "4ac6db157c9a035fe72e4f65c709a65d949f53adc8f9c132f09300b781ac838f"}, "url": "/docs/compare/?release=15.7#15.7-7c4e44a0b0eb2772", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "f9161266e6e03d6738b33b19d50bf537", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Fix crash with DSM allocations larger than 4GB", "evidence": {"same_day": true, "patch_ids": ["3c1030c0ce9265c7dfe43cb4f493fe2c"], "statement_hash": "4ac6db157c9a035fe72e4f65c709a65d949f53adc8f9c132f09300b781ac838f"}, "url": "/docs/compare/?release=14.12#14.12-47aa06591c6c9ea9", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "b4a3776a249d9c82bc0d2dbce863c2f5", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "Fix crash with DSM allocations larger than 4GB", "evidence": {"same_day": true, "patch_ids": ["3c1030c0ce9265c7dfe43cb4f493fe2c"], "statement_hash": "4ac6db157c9a035fe72e4f65c709a65d949f53adc8f9c132f09300b781ac838f"}, "url": "/docs/compare/?release=13.15#13.15-a676ee7e09e424c6", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "03edff6b9bfb77a9f54d4737b9f57428", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "Fix crash with DSM allocations larger than 4GB", "evidence": {"same_day": true, "patch_ids": ["3c1030c0ce9265c7dfe43cb4f493fe2c"], "statement_hash": "4ac6db157c9a035fe72e4f65c709a65d949f53adc8f9c132f09300b781ac838f"}, "url": "/docs/compare/?release=12.19#12.19-8616553afe21c74b", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-a5370acb23dba951", "cves": [], "html": "<p>Disconnect if a new server session's client socket cannot be put into non-blocking mode (Heikki Linnakangas) <a href=\"https://postgr.es/c/539e328b1\">§</a></p>\n<p>It was once theoretically possible for us to operate with a socket that's in blocking mode; but that hasn't worked fully in a long time, so fail at connection start rather than misbehave later.</p>", "text": "Disconnect if a new server session's client socket cannot be put into non-blocking mode (Heikki Linnakangas) § It was once theoretically possible for us to operate with a socket that's in blocking mode; but that hasn't worked fully in a long time, so fail at connection start rather than misbehave later.", "title": "Disconnect if a new server session's client socket cannot be put into non-blocking mode", "commits": ["539e328b1"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "c45363c55ea68877b56b4d3666e9df91966e0d09acdeba7f247c335934c4d630", "section_path": ["Changes"], "commit_groups": [["4fce5f970", "539e328b1", "ad5cd55e6", "bf1f593e8", "df27d76d3", "f8c5317d0"]], "identity_text": "Disconnect if a new server session's client socket cannot be put into non-blocking mode (Heikki Linnakangas) It was once theoretically possible for us to operate with a socket that's in blocking mode; but that hasn't worked fully in a long time, so fail at connection start rather than misbehave later.", "commit_aliases": ["4fce5f970", "539e328b1", "ad5cd55e6", "bf1f593e8", "df27d76d3", "f8c5317d0"], "source_commits": ["539e328b1"], "source_entry_id": "16.3/changes/039", "db_id": "9d6cb7367dfe91e259ac493d2c795520", "patch_ids": ["2ad83943ad3dd37a9bc3d43f9537cfa4"], "statement_hash": "b46639635a58fb68589ed8536a6ee1917ef425ec34c3e65dab3edaf7a5b57ed9", "relations": [{"rule": 2, "type": "equivalent", "target": "3fa21d95a64d7da357df0a57ed7b4313", "evidence": {"same_day": true, "patch_ids": ["2ad83943ad3dd37a9bc3d43f9537cfa4"], "statement_hash": "b46639635a58fb68589ed8536a6ee1917ef425ec34c3e65dab3edaf7a5b57ed9"}}, {"rule": 2, "type": "equivalent", "target": "67cb3db3098a0ddd3a06bd864ad8ed9f", "evidence": {"same_day": true, "patch_ids": ["2ad83943ad3dd37a9bc3d43f9537cfa4"], "statement_hash": "b46639635a58fb68589ed8536a6ee1917ef425ec34c3e65dab3edaf7a5b57ed9"}}, {"rule": 2, "type": "equivalent", "target": "d4109ee994ac42bcc100909640b1ce97", "evidence": {"same_day": true, "patch_ids": ["2ad83943ad3dd37a9bc3d43f9537cfa4"], "statement_hash": "b46639635a58fb68589ed8536a6ee1917ef425ec34c3e65dab3edaf7a5b57ed9"}}, {"rule": 2, "type": "equivalent", "target": "f86abd0fade2e9f96a2ee321c30a78f3", "evidence": {"same_day": true, "patch_ids": ["2ad83943ad3dd37a9bc3d43f9537cfa4"], "statement_hash": "b46639635a58fb68589ed8536a6ee1917ef425ec34c3e65dab3edaf7a5b57ed9"}}], "version": "16.3", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "67cb3db3098a0ddd3a06bd864ad8ed9f", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Disconnect if a new server session's client socket cannot be put into non-blocking mode", "evidence": {"same_day": true, "patch_ids": ["2ad83943ad3dd37a9bc3d43f9537cfa4"], "statement_hash": "b46639635a58fb68589ed8536a6ee1917ef425ec34c3e65dab3edaf7a5b57ed9"}, "url": "/docs/compare/?release=15.7#15.7-1d6494ecd5db8ba7", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "f86abd0fade2e9f96a2ee321c30a78f3", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Disconnect if a new server session's client socket cannot be put into non-blocking mode", "evidence": {"same_day": true, "patch_ids": ["2ad83943ad3dd37a9bc3d43f9537cfa4"], "statement_hash": "b46639635a58fb68589ed8536a6ee1917ef425ec34c3e65dab3edaf7a5b57ed9"}, "url": "/docs/compare/?release=14.12#14.12-358e6984cfa530e4", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "d4109ee994ac42bcc100909640b1ce97", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "Disconnect if a new server session's client socket cannot be put into non-blocking mode", "evidence": {"same_day": true, "patch_ids": ["2ad83943ad3dd37a9bc3d43f9537cfa4"], "statement_hash": "b46639635a58fb68589ed8536a6ee1917ef425ec34c3e65dab3edaf7a5b57ed9"}, "url": "/docs/compare/?release=13.15#13.15-811d9428eff2be8c", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "3fa21d95a64d7da357df0a57ed7b4313", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "Disconnect if a new server session's client socket cannot be put into non-blocking mode", "evidence": {"same_day": true, "patch_ids": ["2ad83943ad3dd37a9bc3d43f9537cfa4"], "statement_hash": "b46639635a58fb68589ed8536a6ee1917ef425ec34c3e65dab3edaf7a5b57ed9"}, "url": "/docs/compare/?release=12.19#12.19-bdc16a7f67790087", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-a2626c347a5273b0", "cves": [], "html": "<p>Fix inadequate error reporting with <span>OpenSSL</span> 3.0.0 and later (Heikki Linnakangas, Tom Lane) <a href=\"https://postgr.es/c/6a2c80e95\">§</a></p>\n<p>System-reported errors passed through by OpenSSL were reported with a numeric error code rather than anything readable.</p>", "text": "Fix inadequate error reporting with OpenSSL 3.0.0 and later (Heikki Linnakangas, Tom Lane) § System-reported errors passed through by OpenSSL were reported with a numeric error code rather than anything readable.", "title": "Fix inadequate error reporting with OpenSSL 3.0.0 and later", "commits": ["6a2c80e95"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "de6f4c2f5965034dcfdf59a0c021867ef5cbebe3c6cdb48ad2f59dcc13bfe838", "section_path": ["Changes"], "commit_groups": [["0fe82e45c", "453c46873", "473babd42", "6a2c80e95", "9fbe07275", "c42e5fdcf"]], "identity_text": "Fix inadequate error reporting with OpenSSL 3.0.0 and later (Heikki Linnakangas, Tom Lane) System-reported errors passed through by OpenSSL were reported with a numeric error code rather than anything readable.", "commit_aliases": ["0fe82e45c", "453c46873", "473babd42", "6a2c80e95", "9fbe07275", "c42e5fdcf"], "source_commits": ["6a2c80e95"], "source_entry_id": "16.3/changes/040", "db_id": "5d7eef23a693443c9287d998aca48068", "patch_ids": ["8ead2146ef3fd31afd39d96ce58dcebb"], "statement_hash": "679b85f152162f271353973086cb2d93c507be43c3f664f269fd999217a37170", "relations": [{"rule": 2, "type": "equivalent", "target": "2e696cc24cf68fce74add0abb916578f", "evidence": {"same_day": true, "patch_ids": ["8ead2146ef3fd31afd39d96ce58dcebb"], "statement_hash": "679b85f152162f271353973086cb2d93c507be43c3f664f269fd999217a37170"}}, {"rule": 2, "type": "equivalent", "target": "5ddb2b6c559086be4803430f5d1b3311", "evidence": {"same_day": true, "patch_ids": ["8ead2146ef3fd31afd39d96ce58dcebb"], "statement_hash": "679b85f152162f271353973086cb2d93c507be43c3f664f269fd999217a37170"}}, {"rule": 2, "type": "equivalent", "target": "7482d2f03b4d93af8d4e69351ab3c011", "evidence": {"same_day": true, "patch_ids": ["8ead2146ef3fd31afd39d96ce58dcebb"], "statement_hash": "679b85f152162f271353973086cb2d93c507be43c3f664f269fd999217a37170"}}, {"rule": 2, "type": "equivalent", "target": "c1c12c230519acd4c4770a358669d2fe", "evidence": {"same_day": true, "patch_ids": ["8ead2146ef3fd31afd39d96ce58dcebb"], "statement_hash": "679b85f152162f271353973086cb2d93c507be43c3f664f269fd999217a37170"}}], "version": "16.3", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "7482d2f03b4d93af8d4e69351ab3c011", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Fix inadequate error reporting with OpenSSL 3.0.0 and later", "evidence": {"same_day": true, "patch_ids": ["8ead2146ef3fd31afd39d96ce58dcebb"], "statement_hash": "679b85f152162f271353973086cb2d93c507be43c3f664f269fd999217a37170"}, "url": "/docs/compare/?release=15.7#15.7-918c3b054730b724", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "5ddb2b6c559086be4803430f5d1b3311", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Fix inadequate error reporting with OpenSSL 3.0.0 and later", "evidence": {"same_day": true, "patch_ids": ["8ead2146ef3fd31afd39d96ce58dcebb"], "statement_hash": "679b85f152162f271353973086cb2d93c507be43c3f664f269fd999217a37170"}, "url": "/docs/compare/?release=14.12#14.12-50138a16932bc4a4", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "c1c12c230519acd4c4770a358669d2fe", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "Fix inadequate error reporting with OpenSSL 3.0.0 and later", "evidence": {"same_day": true, "patch_ids": ["8ead2146ef3fd31afd39d96ce58dcebb"], "statement_hash": "679b85f152162f271353973086cb2d93c507be43c3f664f269fd999217a37170"}, "url": "/docs/compare/?release=13.15#13.15-5935e98d63652af5", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "2e696cc24cf68fce74add0abb916578f", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "Fix inadequate error reporting with OpenSSL 3.0.0 and later", "evidence": {"same_day": true, "patch_ids": ["8ead2146ef3fd31afd39d96ce58dcebb"], "statement_hash": "679b85f152162f271353973086cb2d93c507be43c3f664f269fd999217a37170"}, "url": "/docs/compare/?release=12.19#12.19-91fb16124a8827ed", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-5a88a4a996a77380", "cves": [], "html": "<p>Fix thread-safety of error reporting for <code>getaddrinfo()</code> on Windows (Thomas Munro) <a href=\"https://postgr.es/c/0460e4ecc\">§</a></p>\n<p>A multi-threaded <span>libpq</span> client program could get an incorrect or corrupted error message after a network lookup failure.</p>", "text": "Fix thread-safety of error reporting for getaddrinfo() on Windows (Thomas Munro) § A multi-threaded libpq client program could get an incorrect or corrupted error message after a network lookup failure.", "title": "Fix thread-safety of error reporting for getaddrinfo() on Windows", "commits": ["0460e4ecc"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "f0436ff685d3a73341f9d1e36641643da0934618da8ec7fe640ce0322befe260", "section_path": ["Changes"], "commit_groups": [["0460e4ecc", "65f438471"]], "identity_text": "Fix thread-safety of error reporting for getaddrinfo() on Windows (Thomas Munro) A multi-threaded libpq client program could get an incorrect or corrupted error message after a network lookup failure.", "commit_aliases": ["0460e4ecc", "65f438471"], "source_commits": ["0460e4ecc"], "source_entry_id": "16.3/changes/041", "db_id": "b83b1c5ba79732ac91da207823c6aa38", "patch_ids": ["3342c79ebb8292d169a156029843b8b9"], "statement_hash": "ed05c33440bba6a78c74d82ed0e81c8d26693e0f46d5774e302377f6fd0f937e", "relations": [], "version": "16.3", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.3-fae4e65da6594741", "cves": [], "html": "<p>Avoid concurrent calls to <code>bindtextdomain()</code> in <span>libpq</span> and <span>ecpglib</span> (Tom Lane) <a href=\"https://postgr.es/c/52afe5632\">§</a> <a href=\"https://postgr.es/c/9440d23a0\">§</a></p>\n<p>Although GNU <span>gettext</span>'s implementation seems to be fine with concurrent calls, the version available on Windows is not.</p>", "text": "Avoid concurrent calls to bindtextdomain() in libpq and ecpglib (Tom Lane) § § Although GNU gettext's implementation seems to be fine with concurrent calls, the version available on Windows is not.", "title": "Avoid concurrent calls to bindtextdomain() in libpq and ecpglib", "commits": ["52afe5632", "9440d23a0"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "fb98ac007357ed2aa007d86102e3982d6830a8d293b95540da3e56222fab636c", "section_path": ["Changes"], "commit_groups": [["0028b55bc", "67f8cf0f0", "7d7cc7fd6", "9440d23a0", "95e960e81", "9f041b041"], ["52afe5632", "806f98951", "8c5da20db", "8ead39e38", "9fb1396a9", "a584d03ce"]], "identity_text": "Avoid concurrent calls to bindtextdomain() in libpq and ecpglib (Tom Lane) Although GNU gettext's implementation seems to be fine with concurrent calls, the version available on Windows is not.", "commit_aliases": ["0028b55bc", "52afe5632", "67f8cf0f0", "7d7cc7fd6", "806f98951", "8c5da20db", "8ead39e38", "9440d23a0", "95e960e81", "9f041b041", "9fb1396a9", "a584d03ce"], "source_commits": ["52afe5632", "9440d23a0"], "source_entry_id": "16.3/changes/042", "db_id": "db382aa39ae4dc4b0b48ccf3bf323893", "patch_ids": ["63bd43926dc280c22b2998d113495a93", "daa1d5c826f541f539bcb3212de17366"], "statement_hash": "edecb69c847d078ae0fb2d6d21c5f33d4216603e7889f604c1399cede22de299", "relations": [{"rule": 2, "type": "equivalent", "target": "020ae6e6557897fda8dbd996943e4b70", "evidence": {"same_day": true, "patch_ids": ["63bd43926dc280c22b2998d113495a93", "daa1d5c826f541f539bcb3212de17366"], "statement_hash": "edecb69c847d078ae0fb2d6d21c5f33d4216603e7889f604c1399cede22de299"}}, {"rule": 2, "type": "equivalent", "target": "3e1dddb1cc5022e09c0a3dfa625d2441", "evidence": {"same_day": true, "patch_ids": ["63bd43926dc280c22b2998d113495a93", "daa1d5c826f541f539bcb3212de17366"], "statement_hash": "edecb69c847d078ae0fb2d6d21c5f33d4216603e7889f604c1399cede22de299"}}, {"rule": 2, "type": "equivalent", "target": "4d8ea9f401c26d5f9ebf6459c3b35003", "evidence": {"same_day": true, "patch_ids": ["63bd43926dc280c22b2998d113495a93", "daa1d5c826f541f539bcb3212de17366"], "statement_hash": "edecb69c847d078ae0fb2d6d21c5f33d4216603e7889f604c1399cede22de299"}}, {"rule": 2, "type": "equivalent", "target": "f8e877c1a20090dc633e5fddb24ad161", "evidence": {"same_day": true, "patch_ids": ["63bd43926dc280c22b2998d113495a93", "daa1d5c826f541f539bcb3212de17366"], "statement_hash": "edecb69c847d078ae0fb2d6d21c5f33d4216603e7889f604c1399cede22de299"}}], "version": "16.3", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "3e1dddb1cc5022e09c0a3dfa625d2441", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Avoid concurrent calls to bindtextdomain() in libpq and ecpglib", "evidence": {"same_day": true, "patch_ids": ["63bd43926dc280c22b2998d113495a93", "daa1d5c826f541f539bcb3212de17366"], "statement_hash": "edecb69c847d078ae0fb2d6d21c5f33d4216603e7889f604c1399cede22de299"}, "url": "/docs/compare/?release=15.7#15.7-c67649716b7293c9", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "f8e877c1a20090dc633e5fddb24ad161", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Avoid concurrent calls to bindtextdomain() in libpq and ecpglib", "evidence": {"same_day": true, "patch_ids": ["63bd43926dc280c22b2998d113495a93", "daa1d5c826f541f539bcb3212de17366"], "statement_hash": "edecb69c847d078ae0fb2d6d21c5f33d4216603e7889f604c1399cede22de299"}, "url": "/docs/compare/?release=14.12#14.12-d9a4249b40ec948d", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "4d8ea9f401c26d5f9ebf6459c3b35003", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "Avoid concurrent calls to bindtextdomain() in libpq and ecpglib", "evidence": {"same_day": true, "patch_ids": ["63bd43926dc280c22b2998d113495a93", "daa1d5c826f541f539bcb3212de17366"], "statement_hash": "edecb69c847d078ae0fb2d6d21c5f33d4216603e7889f604c1399cede22de299"}, "url": "/docs/compare/?release=13.15#13.15-17a350521c10d165", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "020ae6e6557897fda8dbd996943e4b70", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "Avoid concurrent calls to bindtextdomain() in libpq and ecpglib", "evidence": {"same_day": true, "patch_ids": ["63bd43926dc280c22b2998d113495a93", "daa1d5c826f541f539bcb3212de17366"], "statement_hash": "edecb69c847d078ae0fb2d6d21c5f33d4216603e7889f604c1399cede22de299"}, "url": "/docs/compare/?release=12.19#12.19-881c30772ea4f4c3", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-8baf2edd2c955047", "cves": [], "html": "<p>Fix crash in <span>ecpg</span>'s preprocessor if the program tries to redefine a macro that was defined on the preprocessor command line (Tom Lane) <a href=\"https://postgr.es/c/392e6e9e6\">§</a> <a href=\"https://postgr.es/c/0018f0af5\">§</a> <a href=\"https://postgr.es/c/dd3fddc85\">§</a></p>", "text": "Fix crash in ecpg's preprocessor if the program tries to redefine a macro that was defined on the preprocessor command line (Tom Lane) § § §", "title": "Fix crash in ecpg's preprocessor if the program tries to redefine a macro that was defined on the preprocessor command line", "commits": ["0018f0af5", "392e6e9e6", "dd3fddc85"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "0e0254f3b5ff3171ed0ce13472c0a8ff5d7561d2730caee22d886cf972b0c262", "section_path": ["Changes"], "commit_groups": [["0018f0af5", "1e7b1b026", "481597fc6", "61dd815e0", "df66319f7"], ["02531e8ca", "25f937217", "2b6a74afe", "392e6e9e6", "463164639", "6f0cef935"], ["c6bfeab42", "cd26f08e4", "dd3fddc85", "de84608e2", "f7e891748"]], "identity_text": "Fix crash in ecpg's preprocessor if the program tries to redefine a macro that was defined on the preprocessor command line (Tom Lane)", "commit_aliases": ["0018f0af5", "02531e8ca", "1e7b1b026", "25f937217", "2b6a74afe", "392e6e9e6", "463164639", "481597fc6", "61dd815e0", "6f0cef935", "c6bfeab42", "cd26f08e4", "dd3fddc85", "de84608e2", "df66319f7", "f7e891748"], "source_commits": ["0018f0af5", "392e6e9e6", "dd3fddc85"], "source_entry_id": "16.3/changes/043", "db_id": "6b927098aeebf93b0ab6901d290a9a3f", "patch_ids": ["1c658b0d60aef853c1a0b1c121a92f7b", "d4095fe4e1b04fa3f48cfdfd78eb33a3", "d9ba02c821b39a09d36c65de4d8fd6f4"], "statement_hash": "622fb513584ec537e9528cd6751b4de61f883cbf3baf80b69adeeeeeae3a9107", "relations": [{"rule": 2, "type": "equivalent", "target": "02c9a16368c86c03712f32da9adcb624", "evidence": {"same_day": true, "patch_ids": ["1c658b0d60aef853c1a0b1c121a92f7b", "d4095fe4e1b04fa3f48cfdfd78eb33a3", "d9ba02c821b39a09d36c65de4d8fd6f4"], "statement_hash": "622fb513584ec537e9528cd6751b4de61f883cbf3baf80b69adeeeeeae3a9107"}}, {"rule": 2, "type": "equivalent", "target": "0e6720abff6c0ef3f4c15224636bbb48", "evidence": {"same_day": true, "patch_ids": ["1c658b0d60aef853c1a0b1c121a92f7b", "d4095fe4e1b04fa3f48cfdfd78eb33a3", "d9ba02c821b39a09d36c65de4d8fd6f4"], "statement_hash": "622fb513584ec537e9528cd6751b4de61f883cbf3baf80b69adeeeeeae3a9107"}}, {"rule": 2, "type": "equivalent", "target": "b3dd139801a56ec4438f41c808d46504", "evidence": {"same_day": true, "patch_ids": ["1c658b0d60aef853c1a0b1c121a92f7b", "d4095fe4e1b04fa3f48cfdfd78eb33a3", "d9ba02c821b39a09d36c65de4d8fd6f4"], "statement_hash": "622fb513584ec537e9528cd6751b4de61f883cbf3baf80b69adeeeeeae3a9107"}}, {"rule": 2, "type": "equivalent", "target": "be04f7fc33308b8f72d74759baddfb94", "evidence": {"same_day": true, "patch_ids": ["1c658b0d60aef853c1a0b1c121a92f7b", "d4095fe4e1b04fa3f48cfdfd78eb33a3", "d9ba02c821b39a09d36c65de4d8fd6f4"], "statement_hash": "622fb513584ec537e9528cd6751b4de61f883cbf3baf80b69adeeeeeae3a9107"}}], "version": "16.3", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "be04f7fc33308b8f72d74759baddfb94", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Fix crash in ecpg's preprocessor if the program tries to redefine a macro that was defined on the preprocessor command line", "evidence": {"same_day": true, "patch_ids": ["1c658b0d60aef853c1a0b1c121a92f7b", "d4095fe4e1b04fa3f48cfdfd78eb33a3", "d9ba02c821b39a09d36c65de4d8fd6f4"], "statement_hash": "622fb513584ec537e9528cd6751b4de61f883cbf3baf80b69adeeeeeae3a9107"}, "url": "/docs/compare/?release=15.7#15.7-47e5d469c3efcff0", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "b3dd139801a56ec4438f41c808d46504", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Fix crash in ecpg's preprocessor if the program tries to redefine a macro that was defined on the preprocessor command line", "evidence": {"same_day": true, "patch_ids": ["1c658b0d60aef853c1a0b1c121a92f7b", "d4095fe4e1b04fa3f48cfdfd78eb33a3", "d9ba02c821b39a09d36c65de4d8fd6f4"], "statement_hash": "622fb513584ec537e9528cd6751b4de61f883cbf3baf80b69adeeeeeae3a9107"}, "url": "/docs/compare/?release=14.12#14.12-9ef0006c35969f22", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "02c9a16368c86c03712f32da9adcb624", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "Fix crash in ecpg's preprocessor if the program tries to redefine a macro that was defined on the preprocessor command line", "evidence": {"same_day": true, "patch_ids": ["1c658b0d60aef853c1a0b1c121a92f7b", "d4095fe4e1b04fa3f48cfdfd78eb33a3", "d9ba02c821b39a09d36c65de4d8fd6f4"], "statement_hash": "622fb513584ec537e9528cd6751b4de61f883cbf3baf80b69adeeeeeae3a9107"}, "url": "/docs/compare/?release=13.15#13.15-86435ef5e795ee27", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "0e6720abff6c0ef3f4c15224636bbb48", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "Fix crash in ecpg's preprocessor if the program tries to redefine a macro that was defined on the preprocessor command line", "evidence": {"same_day": true, "patch_ids": ["1c658b0d60aef853c1a0b1c121a92f7b", "d4095fe4e1b04fa3f48cfdfd78eb33a3", "d9ba02c821b39a09d36c65de4d8fd6f4"], "statement_hash": "622fb513584ec537e9528cd6751b4de61f883cbf3baf80b69adeeeeeae3a9107"}, "url": "/docs/compare/?release=12.19#12.19-72df46be3abba45c", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-abde39c9ab91d9c0", "cves": [], "html": "<p>In <span>ecpg</span>, avoid issuing false <span>“<span>unsupported feature will be passed to server</span>”</span> warnings (Tom Lane) <a href=\"https://postgr.es/c/118558e6d\">§</a></p>", "text": "In ecpg, avoid issuing false “unsupported feature will be passed to server” warnings (Tom Lane) §", "title": "In ecpg, avoid issuing false “unsupported feature will be passed to server” warnings", "commits": ["118558e6d"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "8e76d7135100ba6ee00e0934e6a99f5c6a09c6cedc400d6cc63c12bb27acb8b8", "section_path": ["Changes"], "commit_groups": [["096a761d6", "118558e6d", "360d007e3", "5ba29e945", "d3167ed3f", "f159f1814"]], "identity_text": "In ecpg, avoid issuing false unsupported feature will be passed to server warnings (Tom Lane)", "commit_aliases": ["096a761d6", "118558e6d", "360d007e3", "5ba29e945", "d3167ed3f", "f159f1814"], "source_commits": ["118558e6d"], "source_entry_id": "16.3/changes/044", "db_id": "920c1e2131427bb9b57492137cc40c9f", "patch_ids": ["1a21225b5cf6d5ffd204952012ab7dde"], "statement_hash": "bb531aaffce46eb173f5bc78de8960d73c45b6e7c5ea12f5dc148adbac875ff3", "relations": [{"rule": 2, "type": "equivalent", "target": "1138816e8f083132125b9b33d04792f6", "evidence": {"same_day": true, "patch_ids": ["1a21225b5cf6d5ffd204952012ab7dde"], "statement_hash": "bb531aaffce46eb173f5bc78de8960d73c45b6e7c5ea12f5dc148adbac875ff3"}}, {"rule": 2, "type": "equivalent", "target": "63065ce22d7ea10df435d0e1f2e03608", "evidence": {"same_day": true, "patch_ids": ["1a21225b5cf6d5ffd204952012ab7dde"], "statement_hash": "bb531aaffce46eb173f5bc78de8960d73c45b6e7c5ea12f5dc148adbac875ff3"}}, {"rule": 2, "type": "equivalent", "target": "6c2bfd92ba413160d17bab086884ee1b", "evidence": {"same_day": true, "patch_ids": ["1a21225b5cf6d5ffd204952012ab7dde"], "statement_hash": "bb531aaffce46eb173f5bc78de8960d73c45b6e7c5ea12f5dc148adbac875ff3"}}, {"rule": 2, "type": "equivalent", "target": "7b766169d5525931a22b6c9edc396215", "evidence": {"same_day": true, "patch_ids": ["1a21225b5cf6d5ffd204952012ab7dde"], "statement_hash": "bb531aaffce46eb173f5bc78de8960d73c45b6e7c5ea12f5dc148adbac875ff3"}}], "version": "16.3", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "6c2bfd92ba413160d17bab086884ee1b", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "In ecpg, avoid issuing false “unsupported feature will be passed to server” warnings", "evidence": {"same_day": true, "patch_ids": ["1a21225b5cf6d5ffd204952012ab7dde"], "statement_hash": "bb531aaffce46eb173f5bc78de8960d73c45b6e7c5ea12f5dc148adbac875ff3"}, "url": "/docs/compare/?release=15.7#15.7-3d935f2f2694d7ff", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "63065ce22d7ea10df435d0e1f2e03608", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "In ecpg, avoid issuing false “unsupported feature will be passed to server” warnings", "evidence": {"same_day": true, "patch_ids": ["1a21225b5cf6d5ffd204952012ab7dde"], "statement_hash": "bb531aaffce46eb173f5bc78de8960d73c45b6e7c5ea12f5dc148adbac875ff3"}, "url": "/docs/compare/?release=14.12#14.12-c0521153c103b580", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "7b766169d5525931a22b6c9edc396215", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "In ecpg, avoid issuing false “unsupported feature will be passed to server” warnings", "evidence": {"same_day": true, "patch_ids": ["1a21225b5cf6d5ffd204952012ab7dde"], "statement_hash": "bb531aaffce46eb173f5bc78de8960d73c45b6e7c5ea12f5dc148adbac875ff3"}, "url": "/docs/compare/?release=13.15#13.15-f27db5d9ab14139f", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "1138816e8f083132125b9b33d04792f6", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "In ecpg, avoid issuing false “unsupported feature will be passed to server” warnings", "evidence": {"same_day": true, "patch_ids": ["1a21225b5cf6d5ffd204952012ab7dde"], "statement_hash": "bb531aaffce46eb173f5bc78de8960d73c45b6e7c5ea12f5dc148adbac875ff3"}, "url": "/docs/compare/?release=12.19#12.19-9afe1d20e2c69e77", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-6ff031e5a237bc60", "cves": [], "html": "<p>Ensure that the string result of <span>ecpg</span>'s <code>intoasc()</code> function is correctly zero-terminated (Oleg Tselebrovskiy) <a href=\"https://postgr.es/c/88e03d055\">§</a></p>", "text": "Ensure that the string result of ecpg's intoasc() function is correctly zero-terminated (Oleg Tselebrovskiy) §", "title": "Ensure that the string result of ecpg's intoasc() function is correctly zero-terminated", "commits": ["88e03d055"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "a342714d2d907979914a04d9cd69fc3246f2017fd6db5966802c0b55f92a5faf", "section_path": ["Changes"], "commit_groups": [["771240f97", "88e03d055", "a05bb9add", "b5cb6022b", "c031ce97b", "e77a1c58e"]], "identity_text": "Ensure that the string result of ecpg's intoasc() function is correctly zero-terminated (Oleg Tselebrovskiy)", "commit_aliases": ["771240f97", "88e03d055", "a05bb9add", "b5cb6022b", "c031ce97b", "e77a1c58e"], "source_commits": ["88e03d055"], "source_entry_id": "16.3/changes/045", "db_id": "b2c6f640647cdad0c363caaf72d2d8d3", "patch_ids": ["192c72b5c543c2f2fb38a11dc8cfff1c"], "statement_hash": "b144f0988f779f6b0ec0b3b7b8bedaa3bf14b0f38c31b506c84670cd0ca04489", "relations": [{"rule": 2, "type": "equivalent", "target": "0518c552ba162106bdffb1fa87e81562", "evidence": {"same_day": true, "patch_ids": ["192c72b5c543c2f2fb38a11dc8cfff1c"], "statement_hash": "b144f0988f779f6b0ec0b3b7b8bedaa3bf14b0f38c31b506c84670cd0ca04489"}}, {"rule": 2, "type": "equivalent", "target": "492a6a9008038217a974383265692fb4", "evidence": {"same_day": true, "patch_ids": ["192c72b5c543c2f2fb38a11dc8cfff1c"], "statement_hash": "b144f0988f779f6b0ec0b3b7b8bedaa3bf14b0f38c31b506c84670cd0ca04489"}}, {"rule": 2, "type": "equivalent", "target": "9e116c1a7808fc2acdac3c765dc3aeb8", "evidence": {"same_day": true, "patch_ids": ["192c72b5c543c2f2fb38a11dc8cfff1c"], "statement_hash": "b144f0988f779f6b0ec0b3b7b8bedaa3bf14b0f38c31b506c84670cd0ca04489"}}, {"rule": 2, "type": "equivalent", "target": "d380dd8966e5435fbf139b30b53c77e6", "evidence": {"same_day": true, "patch_ids": ["192c72b5c543c2f2fb38a11dc8cfff1c"], "statement_hash": "b144f0988f779f6b0ec0b3b7b8bedaa3bf14b0f38c31b506c84670cd0ca04489"}}], "version": "16.3", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "d380dd8966e5435fbf139b30b53c77e6", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Ensure that the string result of ecpg's intoasc() function is correctly zero-terminated", "evidence": {"same_day": true, "patch_ids": ["192c72b5c543c2f2fb38a11dc8cfff1c"], "statement_hash": "b144f0988f779f6b0ec0b3b7b8bedaa3bf14b0f38c31b506c84670cd0ca04489"}, "url": "/docs/compare/?release=15.7#15.7-93d7a61416ecd0bd", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "492a6a9008038217a974383265692fb4", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Ensure that the string result of ecpg's intoasc() function is correctly zero-terminated", "evidence": {"same_day": true, "patch_ids": ["192c72b5c543c2f2fb38a11dc8cfff1c"], "statement_hash": "b144f0988f779f6b0ec0b3b7b8bedaa3bf14b0f38c31b506c84670cd0ca04489"}, "url": "/docs/compare/?release=14.12#14.12-6c5495fd0788a6fa", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "9e116c1a7808fc2acdac3c765dc3aeb8", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "Ensure that the string result of ecpg's intoasc() function is correctly zero-terminated", "evidence": {"same_day": true, "patch_ids": ["192c72b5c543c2f2fb38a11dc8cfff1c"], "statement_hash": "b144f0988f779f6b0ec0b3b7b8bedaa3bf14b0f38c31b506c84670cd0ca04489"}, "url": "/docs/compare/?release=13.15#13.15-f6da4c8ae0455782", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "0518c552ba162106bdffb1fa87e81562", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "Ensure that the string result of ecpg's intoasc() function is correctly zero-terminated", "evidence": {"same_day": true, "patch_ids": ["192c72b5c543c2f2fb38a11dc8cfff1c"], "statement_hash": "b144f0988f779f6b0ec0b3b7b8bedaa3bf14b0f38c31b506c84670cd0ca04489"}, "url": "/docs/compare/?release=12.19#12.19-b1402d68b834639a", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-3b2fae9a761c6246", "cves": [], "html": "<p>In <span>initdb</span>'s <code>-c</code> option, match parameter names case-insensitively (Tom Lane) <a href=\"https://postgr.es/c/b78f4d22b\">§</a></p>\n<p>The server treats parameter names case-insensitively, so this code should too. This avoids putting redundant entries into the generated <code>postgresql.conf</code> file.</p>", "text": "In initdb's -c option, match parameter names case-insensitively (Tom Lane) § The server treats parameter names case-insensitively, so this code should too. This avoids putting redundant entries into the generated postgresql.conf file.", "title": "In initdb's -c option, match parameter names case-insensitively", "commits": ["b78f4d22b"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "56c9bc1df2e31c57926ab03f45fb2dd0aea8a4224aa2ac3a7e48ee05f52187f9", "section_path": ["Changes"], "commit_groups": [["b78f4d22b", "fce2ce797"]], "identity_text": "In initdb's -c option, match parameter names case-insensitively (Tom Lane) The server treats parameter names case-insensitively, so this code should too. This avoids putting redundant entries into the generated postgresql.conf file.", "commit_aliases": ["b78f4d22b", "fce2ce797"], "source_commits": ["b78f4d22b"], "source_entry_id": "16.3/changes/046", "db_id": "4a30d3eaf05ccdbabcdee300a6b81d99", "patch_ids": ["e5098b75ecd9667bcc08b1a0ef091442"], "statement_hash": "10c46245c692367062a355ffcea29f6a2c54e0df0781e51ba38de4d47356e7a1", "relations": [], "version": "16.3", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": []}, {"id": "16.3-35da3eb4bc2325b2", "cves": [], "html": "<p>In <span>psql</span>, avoid leaking a query result after the query is cancelled (Tom Lane) <a href=\"https://postgr.es/c/a85e3ba1c\">§</a></p>\n<p>This happened only when cancelling a non-last query in a query string made with <code>\\;</code> separators.</p>", "text": "In psql, avoid leaking a query result after the query is cancelled (Tom Lane) § This happened only when cancelling a non-last query in a query string made with \\; separators.", "title": "In psql, avoid leaking a query result after the query is cancelled", "commits": ["a85e3ba1c"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "55194da992b9801a2a4463a5540cf76b7c4c75123e4db239612be48db4d11274", "section_path": ["Changes"], "commit_groups": [["4f1d33d70", "a85e3ba1c", "f463de59d"]], "identity_text": "In psql, avoid leaking a query result after the query is cancelled (Tom Lane) This happened only when cancelling a non-last query in a query string made with \\; separators.", "commit_aliases": ["4f1d33d70", "a85e3ba1c", "f463de59d"], "source_commits": ["a85e3ba1c"], "source_entry_id": "16.3/changes/047", "db_id": "41847bf7b6469b99446fd49167b3d5ea", "patch_ids": ["f83306b2a107c1c7a1c9c5f6dba60bcf"], "statement_hash": "d24151604a43b3316397d414bfa0c71caed1574db99df923bfb284aad7df0e63", "relations": [{"rule": 2, "type": "equivalent", "target": "a367f834102ea0bc1c88a942c402a6af", "evidence": {"same_day": true, "patch_ids": ["f83306b2a107c1c7a1c9c5f6dba60bcf"], "statement_hash": "d24151604a43b3316397d414bfa0c71caed1574db99df923bfb284aad7df0e63"}}], "version": "16.3", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "a367f834102ea0bc1c88a942c402a6af", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "In psql, avoid leaking a query result after the query is cancelled", "evidence": {"same_day": true, "patch_ids": ["f83306b2a107c1c7a1c9c5f6dba60bcf"], "statement_hash": "d24151604a43b3316397d414bfa0c71caed1574db99df923bfb284aad7df0e63"}, "url": "/docs/compare/?release=15.7#15.7-ad92ad288033cde3", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}]}, {"id": "16.3-4a18784e32597b16", "cves": [], "html": "<p>Fix <span>pg_dumpall</span> so that role comments, if present, will be dumped regardless of the setting of <code>--no-role-passwords</code> (Daniel Gustafsson, Álvaro Herrera) <a href=\"https://postgr.es/c/5863bacb8\">§</a></p>", "text": "Fix pg_dumpall so that role comments, if present, will be dumped regardless of the setting of --no-role-passwords (Daniel Gustafsson, Álvaro Herrera) §", "title": "Fix pg_dumpall so that role comments, if present, will be dumped regardless of the setting of --no-role-passwords", "commits": ["5863bacb8"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "636d3f57c98e999507c54c879475127b34cb56134f5d493286c4f60a31298f74", "section_path": ["Changes"], "commit_groups": [["12128be62", "5863bacb8", "7e65ad197", "affc46b76", "be01c8c34", "d82cb467b"], ["6ebd43725", "82c2192d9", "d5c6affb8"]], "identity_text": "Fix pg_dumpall so that role comments, if present, will be dumped regardless of the setting of --no-role-passwords (Daniel Gustafsson, Álvaro Herrera)", "commit_aliases": ["12128be62", "5863bacb8", "6ebd43725", "7e65ad197", "82c2192d9", "affc46b76", "be01c8c34", "d5c6affb8", "d82cb467b"], "source_commits": ["5863bacb8", "6ebd43725"], "source_entry_id": "16.3/changes/048", "db_id": "24b6a7a900b126a85d75993c75a397de", "patch_ids": ["67f6aac3b15420af561c04d961d724ca", "f4099cfcbc85e9449a11a847a053c3c9"], "statement_hash": "5c5258f2926950ec2317cc5af68002fa5302c7693e57c08b2fe025b5c4730598", "relations": [{"rule": 2, "type": "equivalent", "target": "3e03f2de747ef7335af699c286da655e", "evidence": {"same_day": true, "patch_ids": ["67f6aac3b15420af561c04d961d724ca", "f4099cfcbc85e9449a11a847a053c3c9"], "statement_hash": "5c5258f2926950ec2317cc5af68002fa5302c7693e57c08b2fe025b5c4730598"}}, {"rule": 2, "type": "equivalent", "target": "7de7d17e0b0617e67a76e3f4dca7115e", "evidence": {"same_day": true, "patch_ids": ["67f6aac3b15420af561c04d961d724ca", "f4099cfcbc85e9449a11a847a053c3c9"], "statement_hash": "5c5258f2926950ec2317cc5af68002fa5302c7693e57c08b2fe025b5c4730598"}}, {"rule": 2, "type": "equivalent", "target": "d54e86de9796d7809701a97080c4ba9c", "evidence": {"same_day": true, "patch_ids": ["67f6aac3b15420af561c04d961d724ca", "f4099cfcbc85e9449a11a847a053c3c9"], "statement_hash": "5c5258f2926950ec2317cc5af68002fa5302c7693e57c08b2fe025b5c4730598"}}, {"rule": 2, "type": "equivalent", "target": "fc40bcedbbb20bcccb87ee2cedae6617", "evidence": {"same_day": true, "patch_ids": ["67f6aac3b15420af561c04d961d724ca", "f4099cfcbc85e9449a11a847a053c3c9"], "statement_hash": "5c5258f2926950ec2317cc5af68002fa5302c7693e57c08b2fe025b5c4730598"}}], "version": "16.3", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "fc40bcedbbb20bcccb87ee2cedae6617", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Fix pg_dumpall so that role comments, if present, will be dumped regardless of the setting of --no-role-passwords", "evidence": {"same_day": true, "patch_ids": ["67f6aac3b15420af561c04d961d724ca", "f4099cfcbc85e9449a11a847a053c3c9"], "statement_hash": "5c5258f2926950ec2317cc5af68002fa5302c7693e57c08b2fe025b5c4730598"}, "url": "/docs/compare/?release=15.7#15.7-c61e178ebda9e41e", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "d54e86de9796d7809701a97080c4ba9c", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Fix pg_dumpall so that role comments, if present, will be dumped regardless of the setting of --no-role-passwords", "evidence": {"same_day": true, "patch_ids": ["67f6aac3b15420af561c04d961d724ca", "f4099cfcbc85e9449a11a847a053c3c9"], "statement_hash": "5c5258f2926950ec2317cc5af68002fa5302c7693e57c08b2fe025b5c4730598"}, "url": "/docs/compare/?release=14.12#14.12-a2a42e741ab3efed", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "3e03f2de747ef7335af699c286da655e", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "Fix pg_dumpall so that role comments, if present, will be dumped regardless of the setting of --no-role-passwords", "evidence": {"same_day": true, "patch_ids": ["67f6aac3b15420af561c04d961d724ca", "f4099cfcbc85e9449a11a847a053c3c9"], "statement_hash": "5c5258f2926950ec2317cc5af68002fa5302c7693e57c08b2fe025b5c4730598"}, "url": "/docs/compare/?release=13.15#13.15-e2426a1a0b99a288", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "7de7d17e0b0617e67a76e3f4dca7115e", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "Fix pg_dumpall so that role comments, if present, will be dumped regardless of the setting of --no-role-passwords", "evidence": {"same_day": true, "patch_ids": ["67f6aac3b15420af561c04d961d724ca", "f4099cfcbc85e9449a11a847a053c3c9"], "statement_hash": "5c5258f2926950ec2317cc5af68002fa5302c7693e57c08b2fe025b5c4730598"}, "url": "/docs/compare/?release=12.19#12.19-619afa0f4427f05d", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-2fd63386f10a6291", "cves": [], "html": "<p>Skip files named <code>.DS_Store</code> in <span>pg_basebackup</span>, <span>pg_checksums</span>, and <span>pg_rewind</span> (Daniel Gustafsson) <a href=\"https://postgr.es/c/103235888\">§</a></p>\n<p>This avoids problems on macOS, where the Finder may create such files.</p>", "text": "Skip files named .DS_Store in pg_basebackup, pg_checksums, and pg_rewind (Daniel Gustafsson) § This avoids problems on macOS, where the Finder may create such files.", "title": "Skip files named .DS_Store in pg_basebackup, pg_checksums, and pg_rewind", "commits": ["103235888"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "9ef3a6af4331fbbc9e9d551be8aa0b75b50dbde936bdac08940fda2965af3225", "section_path": ["Changes"], "commit_groups": [["103235888", "29f005238", "c1fc502f5"]], "identity_text": "Skip files named .DS_Store in pg_basebackup, pg_checksums, and pg_rewind (Daniel Gustafsson) This avoids problems on macOS, where the Finder may create such files.", "commit_aliases": ["103235888", "29f005238", "c1fc502f5"], "source_commits": ["103235888"], "source_entry_id": "16.3/changes/049", "db_id": "736825dfdc65a4c7785fa55e27ebbf9b", "patch_ids": ["6678ac648d79f766ed7216ea5b0d8046"], "statement_hash": "f5acc7d3b51606dd24ce55e0fc41b4d4303d75258c9b72e1bbecbfc133cc7fff", "relations": [{"rule": 2, "type": "equivalent", "target": "85ea7ca3a876ad64be245fc7771db67c", "evidence": {"same_day": true, "patch_ids": ["6678ac648d79f766ed7216ea5b0d8046"], "statement_hash": "f5acc7d3b51606dd24ce55e0fc41b4d4303d75258c9b72e1bbecbfc133cc7fff"}}], "version": "16.3", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "85ea7ca3a876ad64be245fc7771db67c", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Skip files named .DS_Store in pg_basebackup, pg_checksums, and pg_rewind", "evidence": {"same_day": true, "patch_ids": ["6678ac648d79f766ed7216ea5b0d8046"], "statement_hash": "f5acc7d3b51606dd24ce55e0fc41b4d4303d75258c9b72e1bbecbfc133cc7fff"}, "url": "/docs/compare/?release=15.7#15.7-376d87dfdc0dbdec", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}]}, {"id": "16.3-ffdbd3405dc69153", "cves": [], "html": "<p>Fix <span>PL/pgSQL</span>'s parsing of single-line comments (<code>--</code>-style comments) following expressions (Erik Wienhold, Tom Lane) <a href=\"https://postgr.es/c/48f216dc6\">§</a></p>\n<p>This mistake caused parse errors if such a comment followed a <code>WHEN</code> expression in a <span>PL/pgSQL</span> <code>CASE</code> statement.</p>", "text": "Fix PL/pgSQL's parsing of single-line comments (---style comments) following expressions (Erik Wienhold, Tom Lane) § This mistake caused parse errors if such a comment followed a WHEN expression in a PL/pgSQL CASE statement.", "title": "Fix PL/pgSQL's parsing of single-line comments (---style comments) following expressions", "commits": ["48f216dc6"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "8049f66e72f621abb6e75fe6cae07bd2f362fa9eda0171f4161487664fef738e", "section_path": ["Changes"], "commit_groups": [["48f216dc6", "5392dd3d2", "5e9d8bed0", "d85db0a8e", "dc5824a06", "f5cee411a"]], "identity_text": "Fix PL/pgSQL's parsing of single-line comments (---style comments) following expressions (Erik Wienhold, Tom Lane) This mistake caused parse errors if such a comment followed a WHEN expression in a PL/pgSQL CASE statement.", "commit_aliases": ["48f216dc6", "5392dd3d2", "5e9d8bed0", "d85db0a8e", "dc5824a06", "f5cee411a"], "source_commits": ["48f216dc6"], "source_entry_id": "16.3/changes/050", "db_id": "147255f0824b533d5ab04ab9cfb4609d", "patch_ids": ["ab6796e3d42e83e5beacd548c3241773"], "statement_hash": "ec8605b25205a43050c2635883486b2251cfbdcd855af197d403c75ce166db43", "relations": [{"rule": 2, "type": "equivalent", "target": "19eb28a039d3f1ebb2480d7cab86b200", "evidence": {"same_day": true, "patch_ids": ["ab6796e3d42e83e5beacd548c3241773"], "statement_hash": "ec8605b25205a43050c2635883486b2251cfbdcd855af197d403c75ce166db43"}}, {"rule": 2, "type": "equivalent", "target": "a3bbbdd3971b3d16453109574c10d69d", "evidence": {"same_day": true, "patch_ids": ["ab6796e3d42e83e5beacd548c3241773"], "statement_hash": "ec8605b25205a43050c2635883486b2251cfbdcd855af197d403c75ce166db43"}}, {"rule": 2, "type": "equivalent", "target": "c47b554c98b63fab58c8250e00df86d5", "evidence": {"same_day": true, "patch_ids": ["ab6796e3d42e83e5beacd548c3241773"], "statement_hash": "ec8605b25205a43050c2635883486b2251cfbdcd855af197d403c75ce166db43"}}, {"rule": 2, "type": "equivalent", "target": "f970dac8fb9834a39acf82b093642459", "evidence": {"same_day": true, "patch_ids": ["ab6796e3d42e83e5beacd548c3241773"], "statement_hash": "ec8605b25205a43050c2635883486b2251cfbdcd855af197d403c75ce166db43"}}], "version": "16.3", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "19eb28a039d3f1ebb2480d7cab86b200", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Fix PL/pgSQL's parsing of single-line comments (---style comments) following expressions", "evidence": {"same_day": true, "patch_ids": ["ab6796e3d42e83e5beacd548c3241773"], "statement_hash": "ec8605b25205a43050c2635883486b2251cfbdcd855af197d403c75ce166db43"}, "url": "/docs/compare/?release=15.7#15.7-0a6c5b378f4939dd", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "f970dac8fb9834a39acf82b093642459", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Fix PL/pgSQL's parsing of single-line comments (---style comments) following expressions", "evidence": {"same_day": true, "patch_ids": ["ab6796e3d42e83e5beacd548c3241773"], "statement_hash": "ec8605b25205a43050c2635883486b2251cfbdcd855af197d403c75ce166db43"}, "url": "/docs/compare/?release=14.12#14.12-15c5e7548a7e815e", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "c47b554c98b63fab58c8250e00df86d5", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "Fix PL/pgSQL's parsing of single-line comments (---style comments) following expressions", "evidence": {"same_day": true, "patch_ids": ["ab6796e3d42e83e5beacd548c3241773"], "statement_hash": "ec8605b25205a43050c2635883486b2251cfbdcd855af197d403c75ce166db43"}, "url": "/docs/compare/?release=13.15#13.15-7ad2179003324345", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "a3bbbdd3971b3d16453109574c10d69d", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "Fix PL/pgSQL's parsing of single-line comments (---style comments) following expressions", "evidence": {"same_day": true, "patch_ids": ["ab6796e3d42e83e5beacd548c3241773"], "statement_hash": "ec8605b25205a43050c2635883486b2251cfbdcd855af197d403c75ce166db43"}, "url": "/docs/compare/?release=12.19#12.19-8a92cb805eb2d4b1", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-e4148c1581f18ace", "cves": [], "html": "<p>In <code>contrib/amcheck</code>, don't report false match failures due to short- versus long-header values (Andrey Borodin, Michael Zhilin) <a href=\"https://postgr.es/c/3676b846b\">§</a> <a href=\"https://postgr.es/c/a6ddb8ad0\">§</a></p>\n<p>A variable-length datum in a heap tuple or index tuple could have either a short or a long header, depending on compression parameters that applied when it was made. Treat these cases as equivalent rather than complaining if there's a difference.</p>", "text": "In contrib/amcheck, don't report false match failures due to short- versus long-header values (Andrey Borodin, Michael Zhilin) § § A variable-length datum in a heap tuple or index tuple could have either a short or a long header, depending on compression parameters that applied when it was made. Treat these cases as equivalent rather than complaining if there's a difference.", "title": "In contrib/amcheck, don't report false match failures due to short- versus long-header values", "commits": ["3676b846b", "a6ddb8ad0"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "e4e993a84c1ef1df361553a35b6057ec762ea5df95b71d2d0364e4229dc6aa75", "section_path": ["Changes"], "commit_groups": [["0d466bce9", "3676b846b", "4e8529da4", "5cc1f2626", "b1fe8efdf", "d603e6744"], ["50f8611d0", "54e6184db", "5df5d9cd7", "a6ddb8ad0", "ab65dfb0f", "e2c241416"]], "identity_text": "In contrib/amcheck, don't report false match failures due to short- versus long-header values (Andrey Borodin, Michael Zhilin) A variable-length datum in a heap tuple or index tuple could have either a short or a long header, depending on compression parameters that applied when it was made. Treat these cases as equivalent rather than complaining if there's a difference.", "commit_aliases": ["0d466bce9", "3676b846b", "4e8529da4", "50f8611d0", "54e6184db", "5cc1f2626", "5df5d9cd7", "a6ddb8ad0", "ab65dfb0f", "b1fe8efdf", "d603e6744", "e2c241416"], "source_commits": ["3676b846b", "a6ddb8ad0"], "source_entry_id": "16.3/changes/051", "db_id": "8965aef979ee593f6535045c789d7fea", "patch_ids": ["e1d2389d8a219673e7d04f5a1f61d327", "ea21caf73300604d4dc9418f39f18ae6"], "statement_hash": "4fee16bd18ca92c880d150a6f221d981aec2ed4003ed6f8e8f328601e6df26f2", "relations": [{"rule": 2, "type": "equivalent", "target": "53dceea6c6aaabe219d0e6ae24233a3e", "evidence": {"same_day": true, "patch_ids": ["e1d2389d8a219673e7d04f5a1f61d327", "ea21caf73300604d4dc9418f39f18ae6"], "statement_hash": "4fee16bd18ca92c880d150a6f221d981aec2ed4003ed6f8e8f328601e6df26f2"}}, {"rule": 2, "type": "equivalent", "target": "72d1b0830033e712160de1fd2ddb993a", "evidence": {"same_day": true, "patch_ids": ["e1d2389d8a219673e7d04f5a1f61d327", "ea21caf73300604d4dc9418f39f18ae6"], "statement_hash": "4fee16bd18ca92c880d150a6f221d981aec2ed4003ed6f8e8f328601e6df26f2"}}, {"rule": 2, "type": "equivalent", "target": "8e974a7611d4dcc1be2d802a4ee40a82", "evidence": {"same_day": true, "patch_ids": ["e1d2389d8a219673e7d04f5a1f61d327", "ea21caf73300604d4dc9418f39f18ae6"], "statement_hash": "4fee16bd18ca92c880d150a6f221d981aec2ed4003ed6f8e8f328601e6df26f2"}}, {"rule": 2, "type": "equivalent", "target": "f1caa7b4d1dfa36396963a715a0724ae", "evidence": {"same_day": true, "patch_ids": ["e1d2389d8a219673e7d04f5a1f61d327", "ea21caf73300604d4dc9418f39f18ae6"], "statement_hash": "4fee16bd18ca92c880d150a6f221d981aec2ed4003ed6f8e8f328601e6df26f2"}}], "version": "16.3", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "8e974a7611d4dcc1be2d802a4ee40a82", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "In contrib/amcheck, don't report false match failures due to short- versus long-header values", "evidence": {"same_day": true, "patch_ids": ["e1d2389d8a219673e7d04f5a1f61d327", "ea21caf73300604d4dc9418f39f18ae6"], "statement_hash": "4fee16bd18ca92c880d150a6f221d981aec2ed4003ed6f8e8f328601e6df26f2"}, "url": "/docs/compare/?release=15.7#15.7-6ed57b76bedb3f77", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "53dceea6c6aaabe219d0e6ae24233a3e", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "In contrib/amcheck, don't report false match failures due to short- versus long-header values", "evidence": {"same_day": true, "patch_ids": ["e1d2389d8a219673e7d04f5a1f61d327", "ea21caf73300604d4dc9418f39f18ae6"], "statement_hash": "4fee16bd18ca92c880d150a6f221d981aec2ed4003ed6f8e8f328601e6df26f2"}, "url": "/docs/compare/?release=14.12#14.12-0ab4e0b2c9fa9d22", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "f1caa7b4d1dfa36396963a715a0724ae", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "In contrib/amcheck, don't report false match failures due to short- versus long-header values", "evidence": {"same_day": true, "patch_ids": ["e1d2389d8a219673e7d04f5a1f61d327", "ea21caf73300604d4dc9418f39f18ae6"], "statement_hash": "4fee16bd18ca92c880d150a6f221d981aec2ed4003ed6f8e8f328601e6df26f2"}, "url": "/docs/compare/?release=13.15#13.15-1ce866815ee8b870", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "72d1b0830033e712160de1fd2ddb993a", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "In contrib/amcheck, don't report false match failures due to short- versus long-header values", "evidence": {"same_day": true, "patch_ids": ["e1d2389d8a219673e7d04f5a1f61d327", "ea21caf73300604d4dc9418f39f18ae6"], "statement_hash": "4fee16bd18ca92c880d150a6f221d981aec2ed4003ed6f8e8f328601e6df26f2"}, "url": "/docs/compare/?release=12.19#12.19-820898ebc71275dc", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-ea28af88a8ffc172", "cves": [], "html": "<p>Fix bugs in BRIN output functions (Tomas Vondra) <a href=\"https://postgr.es/c/8cea358b1\">§</a> <a href=\"https://postgr.es/c/ccd8f0fa1\">§</a></p>\n<p>These output functions are only used for displaying index entries in <code>contrib/pageinspect</code>, so the errors are of limited practical concern.</p>", "text": "Fix bugs in BRIN output functions (Tomas Vondra) § § These output functions are only used for displaying index entries in contrib/pageinspect, so the errors are of limited practical concern.", "title": "Fix bugs in BRIN output functions", "commits": ["8cea358b1", "ccd8f0fa1"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "17195aeb8efeb975dcbeaf03df9af63dcceab8fb69eb3c030c215a77b31b7647", "section_path": ["Changes"], "commit_groups": [["2f20ced1e", "3cd413511", "ad23af83d", "ccd8f0fa1"], ["8cea358b1", "bb616ed3e"]], "identity_text": "Fix bugs in BRIN output functions (Tomas Vondra) These output functions are only used for displaying index entries in contrib/pageinspect, so the errors are of limited practical concern.", "commit_aliases": ["2f20ced1e", "3cd413511", "8cea358b1", "ad23af83d", "bb616ed3e", "ccd8f0fa1"], "source_commits": ["8cea358b1", "ccd8f0fa1"], "source_entry_id": "16.3/changes/052", "db_id": "1f3ae268c8dc4b8675957fbb100ccec2", "patch_ids": ["8734b5343fcb5b3e329f9aa4521e123d", "b234ff7fc13cbf072cd9eecf5cafb0a1"], "statement_hash": "6209e7647555f3f3811f47278d7b842c1d62b73cb43c8b28042fe46ae77f85d7", "relations": [{"rule": 2, "type": "equivalent", "target": "04ff4d043f194178e3972237e7f8408d", "evidence": {"same_day": true, "patch_ids": ["8734b5343fcb5b3e329f9aa4521e123d", "b234ff7fc13cbf072cd9eecf5cafb0a1"], "statement_hash": "6209e7647555f3f3811f47278d7b842c1d62b73cb43c8b28042fe46ae77f85d7"}}, {"rule": 2, "type": "equivalent", "target": "b93a05a9e45388d4281053cd153d332f", "evidence": {"same_day": true, "patch_ids": ["8734b5343fcb5b3e329f9aa4521e123d", "b234ff7fc13cbf072cd9eecf5cafb0a1"], "statement_hash": "6209e7647555f3f3811f47278d7b842c1d62b73cb43c8b28042fe46ae77f85d7"}}], "version": "16.3", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "04ff4d043f194178e3972237e7f8408d", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Fix bugs in BRIN output functions", "evidence": {"same_day": true, "patch_ids": ["8734b5343fcb5b3e329f9aa4521e123d", "b234ff7fc13cbf072cd9eecf5cafb0a1"], "statement_hash": "6209e7647555f3f3811f47278d7b842c1d62b73cb43c8b28042fe46ae77f85d7"}, "url": "/docs/compare/?release=15.7#15.7-3ba3cff9b8409b31", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "b93a05a9e45388d4281053cd153d332f", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Fix bugs in BRIN output functions", "evidence": {"same_day": true, "patch_ids": ["8734b5343fcb5b3e329f9aa4521e123d", "b234ff7fc13cbf072cd9eecf5cafb0a1"], "statement_hash": "6209e7647555f3f3811f47278d7b842c1d62b73cb43c8b28042fe46ae77f85d7"}, "url": "/docs/compare/?release=14.12#14.12-ca24d4760b5491b0", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}]}, {"id": "16.3-47fa546097a45ce7", "cves": [], "html": "<p>In <code>contrib/postgres_fdw</code>, avoid emitting requests to sort by a constant (David Rowley) <a href=\"https://postgr.es/c/6a9e2cb2b\">§</a></p>\n<p>This could occur in cases involving <code>UNION ALL</code> with constant-emitting subqueries. Sorting by a constant is useless of course, but it also risks being misinterpreted by the remote server, leading to <span>“<span>ORDER BY position <em><code>N</code></em> is not in select list</span>”</span> errors.</p>", "text": "In contrib/postgres_fdw, avoid emitting requests to sort by a constant (David Rowley) § This could occur in cases involving UNION ALL with constant-emitting subqueries. Sorting by a constant is useless of course, but it also risks being misinterpreted by the remote server, leading to “ORDER BY position N is not in select list” errors.", "title": "In contrib/postgres_fdw, avoid emitting requests to sort by a constant", "commits": ["6a9e2cb2b"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "0edbbf915298c1f0e1e3fd85624f6eae1a145235baabef1d62d6b09f725d61d8", "section_path": ["Changes"], "commit_groups": [["20b85b3da", "628c3f2e1", "6a9e2cb2b", "9301e0f41", "ab64b275a", "c399248b3"]], "identity_text": "In contrib/postgres_fdw, avoid emitting requests to sort by a constant (David Rowley) This could occur in cases involving UNION ALL with constant-emitting subqueries. Sorting by a constant is useless of course, but it also risks being misinterpreted by the remote server, leading to ORDER BY position N is not in select list errors.", "commit_aliases": ["20b85b3da", "628c3f2e1", "6a9e2cb2b", "9301e0f41", "ab64b275a", "c399248b3"], "source_commits": ["6a9e2cb2b"], "source_entry_id": "16.3/changes/053", "db_id": "a3d1c8dec9febc76cd93ebdeb18859eb", "patch_ids": ["e074eda14b5f3e66457379ddd1a43f5f"], "statement_hash": "9fc51bf62cf5d9aa0fd40ecc366c23ee16839922f775a5d6e7a84c34033258a2", "relations": [{"rule": 2, "type": "equivalent", "target": "6e2e48e2c92785211fcb512bdb30ed23", "evidence": {"same_day": true, "patch_ids": ["e074eda14b5f3e66457379ddd1a43f5f"], "statement_hash": "9fc51bf62cf5d9aa0fd40ecc366c23ee16839922f775a5d6e7a84c34033258a2"}}, {"rule": 2, "type": "equivalent", "target": "707f65347a4b38b7b64b36d701b93664", "evidence": {"same_day": true, "patch_ids": ["e074eda14b5f3e66457379ddd1a43f5f"], "statement_hash": "9fc51bf62cf5d9aa0fd40ecc366c23ee16839922f775a5d6e7a84c34033258a2"}}, {"rule": 2, "type": "equivalent", "target": "862902893dc9bd2c25a881795169e006", "evidence": {"same_day": true, "patch_ids": ["e074eda14b5f3e66457379ddd1a43f5f"], "statement_hash": "9fc51bf62cf5d9aa0fd40ecc366c23ee16839922f775a5d6e7a84c34033258a2"}}, {"rule": 2, "type": "equivalent", "target": "a2bd7ba442bc35fa5af90756c17007d8", "evidence": {"same_day": true, "patch_ids": ["e074eda14b5f3e66457379ddd1a43f5f"], "statement_hash": "9fc51bf62cf5d9aa0fd40ecc366c23ee16839922f775a5d6e7a84c34033258a2"}}], "version": "16.3", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "862902893dc9bd2c25a881795169e006", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "In contrib/postgres_fdw, avoid emitting requests to sort by a constant", "evidence": {"same_day": true, "patch_ids": ["e074eda14b5f3e66457379ddd1a43f5f"], "statement_hash": "9fc51bf62cf5d9aa0fd40ecc366c23ee16839922f775a5d6e7a84c34033258a2"}, "url": "/docs/compare/?release=15.7#15.7-95baabc51e7c5b73", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "6e2e48e2c92785211fcb512bdb30ed23", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "In contrib/postgres_fdw, avoid emitting requests to sort by a constant", "evidence": {"same_day": true, "patch_ids": ["e074eda14b5f3e66457379ddd1a43f5f"], "statement_hash": "9fc51bf62cf5d9aa0fd40ecc366c23ee16839922f775a5d6e7a84c34033258a2"}, "url": "/docs/compare/?release=14.12#14.12-030046262b5b4f96", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "707f65347a4b38b7b64b36d701b93664", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "In contrib/postgres_fdw, avoid emitting requests to sort by a constant", "evidence": {"same_day": true, "patch_ids": ["e074eda14b5f3e66457379ddd1a43f5f"], "statement_hash": "9fc51bf62cf5d9aa0fd40ecc366c23ee16839922f775a5d6e7a84c34033258a2"}, "url": "/docs/compare/?release=13.15#13.15-9be7af3319acb128", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "a2bd7ba442bc35fa5af90756c17007d8", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "In contrib/postgres_fdw, avoid emitting requests to sort by a constant", "evidence": {"same_day": true, "patch_ids": ["e074eda14b5f3e66457379ddd1a43f5f"], "statement_hash": "9fc51bf62cf5d9aa0fd40ecc366c23ee16839922f775a5d6e7a84c34033258a2"}, "url": "/docs/compare/?release=12.19#12.19-9625888f623a6fda", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-5f50552544943722", "cves": [], "html": "<p>Make <code>contrib/postgres_fdw</code> set the remote session's time zone to <code>GMT</code> not <code>UTC</code> (Tom Lane) <a href=\"https://postgr.es/c/75929b6cf\">§</a></p>\n<p>This should have the same results for practical purposes. However, <code>GMT</code> is recognized by hard-wired code in the server, while <code>UTC</code> is looked up in the timezone database. So the old code could fail in the unlikely event that the remote server's timezone database is missing entries.</p>", "text": "Make contrib/postgres_fdw set the remote session's time zone to GMT not UTC (Tom Lane) § This should have the same results for practical purposes. However, GMT is recognized by hard-wired code in the server, while UTC is looked up in the timezone database. So the old code could fail in the unlikely event that the remote server's timezone database is missing entries.", "title": "Make contrib/postgres_fdw set the remote session's time zone to GMT not UTC", "commits": ["75929b6cf"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "c6ae77c000bf55399a8c644f90d52e7dfd09a7a1d53af69d2c1fc5ef040c4049", "section_path": ["Changes"], "commit_groups": [["0e56b2b94", "3ed6e1698", "6c85e3359", "75929b6cf", "a3021aafc", "ce1c30ece"]], "identity_text": "Make contrib/postgres_fdw set the remote session's time zone to GMT not UTC (Tom Lane) This should have the same results for practical purposes. However, GMT is recognized by hard-wired code in the server, while UTC is looked up in the timezone database. So the old code could fail in the unlikely event that the remote server's timezone database is missing entries.", "commit_aliases": ["0e56b2b94", "3ed6e1698", "6c85e3359", "75929b6cf", "a3021aafc", "ce1c30ece"], "source_commits": ["75929b6cf"], "source_entry_id": "16.3/changes/054", "db_id": "419ef5885ac8a664405d22acc9e51b98", "patch_ids": ["1bcb98cd65b16d22df4e19699c3478ef"], "statement_hash": "e1894efe495ef4b11d667fde6fa89179339dffccfe19c355246e044583ed3ef3", "relations": [{"rule": 2, "type": "equivalent", "target": "2179c32ed8dd548cfb4c6b3814286a77", "evidence": {"same_day": true, "patch_ids": ["1bcb98cd65b16d22df4e19699c3478ef"], "statement_hash": "e1894efe495ef4b11d667fde6fa89179339dffccfe19c355246e044583ed3ef3"}}, {"rule": 2, "type": "equivalent", "target": "6a0651089219e6b60b8be5355fc437a6", "evidence": {"same_day": true, "patch_ids": ["1bcb98cd65b16d22df4e19699c3478ef"], "statement_hash": "e1894efe495ef4b11d667fde6fa89179339dffccfe19c355246e044583ed3ef3"}}, {"rule": 2, "type": "equivalent", "target": "6fc754f9cd55cd094f6a30f32819d1eb", "evidence": {"same_day": true, "patch_ids": ["1bcb98cd65b16d22df4e19699c3478ef"], "statement_hash": "e1894efe495ef4b11d667fde6fa89179339dffccfe19c355246e044583ed3ef3"}}, {"rule": 2, "type": "equivalent", "target": "a990d24d44f7867423a4483f53d749e3", "evidence": {"same_day": true, "patch_ids": ["1bcb98cd65b16d22df4e19699c3478ef"], "statement_hash": "e1894efe495ef4b11d667fde6fa89179339dffccfe19c355246e044583ed3ef3"}}], "version": "16.3", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "6a0651089219e6b60b8be5355fc437a6", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Make contrib/postgres_fdw set the remote session's time zone to GMT not UTC", "evidence": {"same_day": true, "patch_ids": ["1bcb98cd65b16d22df4e19699c3478ef"], "statement_hash": "e1894efe495ef4b11d667fde6fa89179339dffccfe19c355246e044583ed3ef3"}, "url": "/docs/compare/?release=15.7#15.7-de56de507ef93706", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "a990d24d44f7867423a4483f53d749e3", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Make contrib/postgres_fdw set the remote session's time zone to GMT not UTC", "evidence": {"same_day": true, "patch_ids": ["1bcb98cd65b16d22df4e19699c3478ef"], "statement_hash": "e1894efe495ef4b11d667fde6fa89179339dffccfe19c355246e044583ed3ef3"}, "url": "/docs/compare/?release=14.12#14.12-c561ece69e927e55", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "2179c32ed8dd548cfb4c6b3814286a77", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "Make contrib/postgres_fdw set the remote session's time zone to GMT not UTC", "evidence": {"same_day": true, "patch_ids": ["1bcb98cd65b16d22df4e19699c3478ef"], "statement_hash": "e1894efe495ef4b11d667fde6fa89179339dffccfe19c355246e044583ed3ef3"}, "url": "/docs/compare/?release=13.15#13.15-d9ef80bf9e503e9c", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "6fc754f9cd55cd094f6a30f32819d1eb", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "Make contrib/postgres_fdw set the remote session's time zone to GMT not UTC", "evidence": {"same_day": true, "patch_ids": ["1bcb98cd65b16d22df4e19699c3478ef"], "statement_hash": "e1894efe495ef4b11d667fde6fa89179339dffccfe19c355246e044583ed3ef3"}, "url": "/docs/compare/?release=12.19#12.19-6f59b509ea470d07", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-0c44d8c63c4133ee", "cves": [], "html": "<p>In <code>contrib/xml2</code>, avoid use of library functions that have been deprecated in recent versions of <span>libxml2</span> (Dmitry Koval) <a href=\"https://postgr.es/c/7c93f31de\">§</a></p>", "text": "In contrib/xml2, avoid use of library functions that have been deprecated in recent versions of libxml2 (Dmitry Koval) §", "title": "In contrib/xml2, avoid use of library functions that have been deprecated in recent versions of libxml2", "commits": ["7c93f31de"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "9ce44516b17f8a458249ae42017fd823b3f77935c8afe8e9d9e3d269aa9c95ad", "section_path": ["Changes"], "commit_groups": [["4b0e5d601", "689ba4f1c", "6fa5e67e8", "7c93f31de", "bb418aeee"]], "identity_text": "In contrib/xml2, avoid use of library functions that have been deprecated in recent versions of libxml2 (Dmitry Koval)", "commit_aliases": ["4b0e5d601", "689ba4f1c", "6fa5e67e8", "7c93f31de", "bb418aeee"], "source_commits": ["7c93f31de"], "source_entry_id": "16.3/changes/055", "db_id": "cb901205a3693e9499be0e4a77f84a63", "patch_ids": ["5a706458f0097680db2a3308cd50a9e7"], "statement_hash": "710d430a9e842b3e4892995ea241112c0cbdc8539e8e9bef01ec608807a68d0e", "relations": [{"rule": 2, "type": "equivalent", "target": "0bcb9460a48a0f61192644ede677e019", "evidence": {"same_day": true, "patch_ids": ["5a706458f0097680db2a3308cd50a9e7"], "statement_hash": "710d430a9e842b3e4892995ea241112c0cbdc8539e8e9bef01ec608807a68d0e"}}, {"rule": 2, "type": "equivalent", "target": "7655b2394b2d8b26f6159eb7da6fa5f1", "evidence": {"same_day": true, "patch_ids": ["5a706458f0097680db2a3308cd50a9e7"], "statement_hash": "710d430a9e842b3e4892995ea241112c0cbdc8539e8e9bef01ec608807a68d0e"}}, {"rule": 2, "type": "equivalent", "target": "81ee994d03931a7b198f921157f9bbe1", "evidence": {"same_day": true, "patch_ids": ["5a706458f0097680db2a3308cd50a9e7"], "statement_hash": "710d430a9e842b3e4892995ea241112c0cbdc8539e8e9bef01ec608807a68d0e"}}, {"rule": 2, "type": "equivalent", "target": "e0ecb12734b0cefa7ef5e5d6781106f2", "evidence": {"same_day": true, "patch_ids": ["5a706458f0097680db2a3308cd50a9e7"], "statement_hash": "710d430a9e842b3e4892995ea241112c0cbdc8539e8e9bef01ec608807a68d0e"}}], "version": "16.3", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "7655b2394b2d8b26f6159eb7da6fa5f1", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "In contrib/xml2, avoid use of library functions that have been deprecated in recent versions of libxml2", "evidence": {"same_day": true, "patch_ids": ["5a706458f0097680db2a3308cd50a9e7"], "statement_hash": "710d430a9e842b3e4892995ea241112c0cbdc8539e8e9bef01ec608807a68d0e"}, "url": "/docs/compare/?release=15.7#15.7-7a9c9a9c13e01906", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "81ee994d03931a7b198f921157f9bbe1", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "In contrib/xml2, avoid use of library functions that have been deprecated in recent versions of libxml2", "evidence": {"same_day": true, "patch_ids": ["5a706458f0097680db2a3308cd50a9e7"], "statement_hash": "710d430a9e842b3e4892995ea241112c0cbdc8539e8e9bef01ec608807a68d0e"}, "url": "/docs/compare/?release=14.12#14.12-6d2e1cfe68111b03", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "e0ecb12734b0cefa7ef5e5d6781106f2", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "In contrib/xml2, avoid use of library functions that have been deprecated in recent versions of libxml2", "evidence": {"same_day": true, "patch_ids": ["5a706458f0097680db2a3308cd50a9e7"], "statement_hash": "710d430a9e842b3e4892995ea241112c0cbdc8539e8e9bef01ec608807a68d0e"}, "url": "/docs/compare/?release=13.15#13.15-f7010fbae4b9407f", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "0bcb9460a48a0f61192644ede677e019", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "In contrib/xml2, avoid use of library functions that have been deprecated in recent versions of libxml2", "evidence": {"same_day": true, "patch_ids": ["5a706458f0097680db2a3308cd50a9e7"], "statement_hash": "710d430a9e842b3e4892995ea241112c0cbdc8539e8e9bef01ec608807a68d0e"}, "url": "/docs/compare/?release=12.19#12.19-ba3b152984e24a01", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-327357d5baf67111", "cves": [], "html": "<p>Fix incompatibility with LLVM 18 (Thomas Munro, Dmitry Dolgov) <a href=\"https://postgr.es/c/bf1cfe77e\">§</a></p>", "text": "Fix incompatibility with LLVM 18 (Thomas Munro, Dmitry Dolgov) §", "title": "Fix incompatibility with LLVM 18", "commits": ["bf1cfe77e"], "section": "Changes", "category": "bugfix", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "588c23e1d1ddc1084883e782e9f96eaaf99a0f57388fb53ac396b20d0b5b1f69", "section_path": ["Changes"], "commit_groups": [["01b55203a", "4f90750b5", "53c8d6c9f", "74992929a", "7fe32eaa4", "bf1cfe77e"]], "identity_text": "Fix incompatibility with LLVM 18 (Thomas Munro, Dmitry Dolgov)", "commit_aliases": ["01b55203a", "4f90750b5", "53c8d6c9f", "74992929a", "7fe32eaa4", "bf1cfe77e"], "source_commits": ["bf1cfe77e"], "source_entry_id": "16.3/changes/056", "db_id": "04dc0eaac3a719f9c581e84f59027710", "patch_ids": ["0bfd1de86512b44c4a3ac72e2c384b00"], "statement_hash": "209a8dc96e90f5f34622ca53df0750450583e4a07bd64695f759139fad837772", "relations": [{"rule": 2, "type": "equivalent", "target": "34bb891badb95e95c579de49a04bc72c", "evidence": {"same_day": true, "patch_ids": ["0bfd1de86512b44c4a3ac72e2c384b00"], "statement_hash": "209a8dc96e90f5f34622ca53df0750450583e4a07bd64695f759139fad837772"}}, {"rule": 2, "type": "equivalent", "target": "645ccec8e97dd0947fde4c5dce156141", "evidence": {"same_day": true, "patch_ids": ["0bfd1de86512b44c4a3ac72e2c384b00"], "statement_hash": "209a8dc96e90f5f34622ca53df0750450583e4a07bd64695f759139fad837772"}}, {"rule": 2, "type": "equivalent", "target": "a03de54544ea53bab790da1072686f7e", "evidence": {"same_day": true, "patch_ids": ["0bfd1de86512b44c4a3ac72e2c384b00"], "statement_hash": "209a8dc96e90f5f34622ca53df0750450583e4a07bd64695f759139fad837772"}}, {"rule": 2, "type": "equivalent", "target": "ae60d6e2fe584ca1f096870f5906c104", "evidence": {"same_day": true, "patch_ids": ["0bfd1de86512b44c4a3ac72e2c384b00"], "statement_hash": "209a8dc96e90f5f34622ca53df0750450583e4a07bd64695f759139fad837772"}}], "version": "16.3", "category_label": "Bug fixes", "also_in": [], "variants": [], "related_changes": [{"db_id": "34bb891badb95e95c579de49a04bc72c", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Fix incompatibility with LLVM 18", "evidence": {"same_day": true, "patch_ids": ["0bfd1de86512b44c4a3ac72e2c384b00"], "statement_hash": "209a8dc96e90f5f34622ca53df0750450583e4a07bd64695f759139fad837772"}, "url": "/docs/compare/?release=15.7#15.7-7b6232136f8c9f58", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "a03de54544ea53bab790da1072686f7e", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Fix incompatibility with LLVM 18", "evidence": {"same_day": true, "patch_ids": ["0bfd1de86512b44c4a3ac72e2c384b00"], "statement_hash": "209a8dc96e90f5f34622ca53df0750450583e4a07bd64695f759139fad837772"}, "url": "/docs/compare/?release=14.12#14.12-fe9134bf213542dd", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "645ccec8e97dd0947fde4c5dce156141", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "Fix incompatibility with LLVM 18", "evidence": {"same_day": true, "patch_ids": ["0bfd1de86512b44c4a3ac72e2c384b00"], "statement_hash": "209a8dc96e90f5f34622ca53df0750450583e4a07bd64695f759139fad837772"}, "url": "/docs/compare/?release=13.15#13.15-ab90094fab426a70", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "ae60d6e2fe584ca1f096870f5906c104", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "Fix incompatibility with LLVM 18", "evidence": {"same_day": true, "patch_ids": ["0bfd1de86512b44c4a3ac72e2c384b00"], "statement_hash": "209a8dc96e90f5f34622ca53df0750450583e4a07bd64695f759139fad837772"}, "url": "/docs/compare/?release=12.19#12.19-d97e139b99d00413", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}, {"id": "16.3-5eacab78ed6be1a0", "cves": [], "html": "<p>Allow <code>make check</code> to work with the <span>musl</span> C library (Thomas Munro, Bruce Momjian, Tom Lane) <a href=\"https://postgr.es/c/7651fd387\">§</a></p>", "text": "Allow make check to work with the musl C library (Thomas Munro, Bruce Momjian, Tom Lane) §", "title": "Allow make check to work with the musl C library", "commits": ["7651fd387"], "section": "Changes", "category": "improvement", "source_url": "/docs/release/16.3/#RELEASE-16-3-CHANGES", "source_hash": "8cd48768b1af221562a42a1ac009a5e96f1858faf0cf6e5b95a470d6abf50364", "section_path": ["Changes"], "commit_groups": [["243e99532", "3c3f4fd74", "7124e7d52", "7651fd387", "8a92b70c1", "d82605bcd"]], "identity_text": "Allow make check to work with the musl C library (Thomas Munro, Bruce Momjian, Tom Lane)", "commit_aliases": ["243e99532", "3c3f4fd74", "7124e7d52", "7651fd387", "8a92b70c1", "d82605bcd"], "source_commits": ["7651fd387"], "source_entry_id": "16.3/changes/057", "db_id": "4be7cee7e9515b4547d6856a88812274", "patch_ids": ["c2083b6acbeb8472a1dde681bf2773cd"], "statement_hash": "fa8c1a927c22dba5538dde7eccc3ca72804c858874602a4eb3c7bf683455ee82", "relations": [{"rule": 2, "type": "equivalent", "target": "249f4497ca17377423336ca6d8a30fa8", "evidence": {"same_day": true, "patch_ids": ["c2083b6acbeb8472a1dde681bf2773cd"], "statement_hash": "fa8c1a927c22dba5538dde7eccc3ca72804c858874602a4eb3c7bf683455ee82"}}, {"rule": 2, "type": "equivalent", "target": "354394f51cf61be086b6ffe69e668dd3", "evidence": {"same_day": true, "patch_ids": ["c2083b6acbeb8472a1dde681bf2773cd"], "statement_hash": "fa8c1a927c22dba5538dde7eccc3ca72804c858874602a4eb3c7bf683455ee82"}}, {"rule": 2, "type": "equivalent", "target": "614b385e1aaa55b66b2ccb6647aa5d77", "evidence": {"same_day": true, "patch_ids": ["c2083b6acbeb8472a1dde681bf2773cd"], "statement_hash": "fa8c1a927c22dba5538dde7eccc3ca72804c858874602a4eb3c7bf683455ee82"}}, {"rule": 2, "type": "equivalent", "target": "e68b85c41ba477e0f8c5a3106e5bc69d", "evidence": {"same_day": true, "patch_ids": ["c2083b6acbeb8472a1dde681bf2773cd"], "statement_hash": "fa8c1a927c22dba5538dde7eccc3ca72804c858874602a4eb3c7bf683455ee82"}}], "version": "16.3", "category_label": "Improvements", "also_in": [], "variants": [], "related_changes": [{"db_id": "614b385e1aaa55b66b2ccb6647aa5d77", "kind": "equivalent", "version": "15.7", "label": "15.7", "title": "Allow make check to work with the musl C library", "evidence": {"same_day": true, "patch_ids": ["c2083b6acbeb8472a1dde681bf2773cd"], "statement_hash": "fa8c1a927c22dba5538dde7eccc3ca72804c858874602a4eb3c7bf683455ee82"}, "url": "/docs/compare/?release=15.7#15.7-1f208194cee3206c", "source_url": "/docs/release/15.7/#id-1.11.6.18.5"}, {"db_id": "e68b85c41ba477e0f8c5a3106e5bc69d", "kind": "equivalent", "version": "14.12", "label": "14.12", "title": "Allow make check to work with the musl C library", "evidence": {"same_day": true, "patch_ids": ["c2083b6acbeb8472a1dde681bf2773cd"], "statement_hash": "fa8c1a927c22dba5538dde7eccc3ca72804c858874602a4eb3c7bf683455ee82"}, "url": "/docs/compare/?release=14.12#14.12-e5f02358be8c1ef9", "source_url": "/docs/release/14.12/#id-1.11.6.18.5"}, {"db_id": "354394f51cf61be086b6ffe69e668dd3", "kind": "equivalent", "version": "13.15", "label": "13.15", "title": "Allow make check to work with the musl C library", "evidence": {"same_day": true, "patch_ids": ["c2083b6acbeb8472a1dde681bf2773cd"], "statement_hash": "fa8c1a927c22dba5538dde7eccc3ca72804c858874602a4eb3c7bf683455ee82"}, "url": "/docs/compare/?release=13.15#13.15-7f8d5f14dd0b076e", "source_url": "/docs/release/13.15/#id-1.11.6.14.5"}, {"db_id": "249f4497ca17377423336ca6d8a30fa8", "kind": "equivalent", "version": "12.19", "label": "12.19", "title": "Allow make check to work with the musl C library", "evidence": {"same_day": true, "patch_ids": ["c2083b6acbeb8472a1dde681bf2773cd"], "statement_hash": "fa8c1a927c22dba5538dde7eccc3ca72804c858874602a4eb3c7bf683455ee82"}, "url": "/docs/compare/?release=12.19#12.19-18300bc70d33e78c", "source_url": "/docs/release/12.19/#id-1.11.6.9.6"}]}]}], "stats": [{"key": "all", "label": "All changes", "count": 57}, {"key": "feature", "label": "Features", "count": 0}, {"key": "bugfix", "label": "Bug fixes", "count": 27}, {"key": "security", "label": "Security", "count": 1}, {"key": "performance", "label": "Performance", "count": 0}, {"key": "compatibility", "label": "Compatibility", "count": 0}, {"key": "improvement", "label": "Improvements", "count": 29}], "total": 57, "release_count": 1, "cross_major": false, "cve_count": 1, "cves": [{"id": "CVE-2024-4317", "url": "https://www.postgresql.org/support/security/CVE-2024-4317/", "fixed": {"14": "14.12", "15": "15.7", "16": "16.3"}, "score": 3.1, "title": "Restrict visibility of pg_stats_ext and pg_stats_ext_exprs entries to the table owner", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N", "cna_url": "https://cveawg.mitre.org/api/cve/CVE-2024-4317", "affected": {"14": "14", "15": "15", "16": "16"}, "component": "core server", "published": {"14": "2024-05-09", "15": "2024-05-09", "16": "2024-05-09"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Missing authorization in PostgreSQL built-in views pg_stats_ext and pg_stats_ext_exprs allows an unprivileged database user to read most common values and other statistics from CREATE STATISTICS commands of other users. The most common values may reveal column values the eavesdropper could not otherwise read or results of functions they cannot execute. Installing an unaffected version only fixes fresh PostgreSQL installations, namely those that are created with the initdb utility after installing that version. Current PostgreSQL installations will remain vulnerable until they follow the instructions in the release notes, which are provided as a convenience in the below section. Within major versions 14-16, minor versions before PostgreSQL 16.3, 15.7, and 14.12 are affected. Versions before PostgreSQL 14 are unaffected.\n\nThis fix only fixes fresh PostgreSQL installations, namely those that are created with the initdb utility after this fix is applied. If you have a current PostgreSQL installation and are concerned about this issue, please use the following remediation steps to fix the issue:\n\nFrom the above URLs, you can click the URL that says \"raw\" to download a version that you can copy and paste.\n\nBe sure to use the script appropriate to your PostgreSQL major version. If you do not see this file, either your version is not vulnerable (only PostgreSQL 14, 15, and 16 are affected) or your minor version is too old to have the fix.\n\n\\i /usr/share/postgresql/fix-CVE-2024-4317.sql\n\nALTER DATABASE template0 WITH ALLOW_CONNECTIONS true;\n\nAfter executing the fix-CVE-2024-4317.sql script in template0 and template1 , you should revoke the ability for template0 to accept connections. You can do this with the following command:\n\nALTER DATABASE template0 WITH ALLOW_CONNECTIONS false;\n\nThe PostgreSQL project thanks Lukas Fittl for reporting this problem.", "affected_ranges": [{"from": "14", "until": "14.12"}, {"from": "15", "until": "15.7"}, {"from": "16", "until": "16.3"}], "first_published": "2024-05-09", "fixed_version": "16.3"}], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 57, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}