{"format": 1, "version": {"branch": "14", "url": "/wiki/versions/14/", "state": "supported", "state_label": "Supported", "tag": "", "build": "14.24", "first_release": "2021-09-30", "end_of_life": "2026-11-12", "latest_release_date": "2026-08-13", "manual_url": "/docs/14/index.html", "manual_slug": "14", "manual_pages": 1161, "manual_loaded_at": "2026-09-27T00:10:47.078613", "source_revision": "", "release_count": 25, "entry_count": 1206, "initial": {"version": "14.0", "build": "14.0", "status": "stable", "date": "2021-09-30", "source_as_of": "", "url": "/docs/compare/?release=14.0", "manual_url": "/docs/14/release-14.html", "source_url": "/docs/release/14.0/", "entry_count": 220, "categories": {"compatibility": 27, "feature": 178, "performance": 13, "bugfix": 2}, "compatibility_count": 27, "cves": [], "cve_count": 0}, "latest": {"version": "14.24", "build": "14.24", "status": "stable", "date": "2026-08-13", "source_as_of": "", "url": "/docs/compare/?release=14.24", "manual_url": "/docs/14/release-14-24.html", "source_url": "/docs/release/14.24/", "entry_count": 83, "categories": {"security": 29, "bugfix": 31, "improvement": 23}, "compatibility_count": 0, "cves": ["CVE-2025-8714", "CVE-2026-14662", "CVE-2026-14663", "CVE-2026-14664", "CVE-2026-14666", "CVE-2026-14668", "CVE-2026-14669", "CVE-2026-14670", "CVE-2026-14671", "CVE-2026-14672", "CVE-2026-14673", "CVE-2026-14676", "CVE-2026-14677", "CVE-2026-14678", "CVE-2026-14679", "CVE-2026-14680", "CVE-2026-14681", "CVE-2026-15741", "CVE-2026-15742", "CVE-2026-16238", "CVE-2026-16239", "CVE-2026-16241", "CVE-2026-18024", "CVE-2026-18408", "CVE-2026-19385", "CVE-2026-6464", "CVE-2026-6469", "CVE-2026-6470", "CVE-2026-6471", "CVE-2026-6473", "CVE-2026-6637"], "cve_count": 31}, "comparison_url": "/docs/compare/?from=14.0&to=14.24"}, "releases": [{"version": "14.24", "build": "14.24", "status": "stable", "date": "2026-08-13", "source_as_of": "", "url": "/docs/compare/?release=14.24", "manual_url": "/docs/14/release-14-24.html", "source_url": "/docs/release/14.24/", "entry_count": 83, "categories": {"security": 29, "bugfix": 31, "improvement": 23}, "compatibility_count": 0, "cves": ["CVE-2025-8714", "CVE-2026-14662", "CVE-2026-14663", "CVE-2026-14664", "CVE-2026-14666", "CVE-2026-14668", "CVE-2026-14669", "CVE-2026-14670", "CVE-2026-14671", "CVE-2026-14672", "CVE-2026-14673", "CVE-2026-14676", "CVE-2026-14677", "CVE-2026-14678", "CVE-2026-14679", "CVE-2026-14680", "CVE-2026-14681", "CVE-2026-15741", "CVE-2026-15742", "CVE-2026-16238", "CVE-2026-16239", "CVE-2026-16241", "CVE-2026-18024", "CVE-2026-18408", "CVE-2026-19385", "CVE-2026-6464", "CVE-2026-6469", "CVE-2026-6470", "CVE-2026-6471", "CVE-2026-6473", "CVE-2026-6637"], "cve_count": 31}, {"version": "14.23", "build": "14.23", "status": "stable", "date": "2026-05-14", "source_as_of": "", "url": "/docs/compare/?release=14.23", "manual_url": "/docs/14/release-14-23.html", "source_url": "/docs/release/14.23/", "entry_count": 38, "categories": {"security": 11, "improvement": 12, "bugfix": 15}, "compatibility_count": 0, "cves": ["CVE-2026-6472", "CVE-2026-6473", "CVE-2026-6474", "CVE-2026-6475", "CVE-2026-6477", "CVE-2026-6478", "CVE-2026-6479", "CVE-2026-6637"], "cve_count": 8}, {"version": "14.22", "build": "14.22", "status": "stable", "date": "2026-02-26", "source_as_of": "", "url": "/docs/compare/?release=14.22", "manual_url": "/docs/14/release-14-22.html", "source_url": "/docs/release/14.22/", "entry_count": 5, "categories": {"bugfix": 4, "security": 1}, "compatibility_count": 0, "cves": ["CVE-2026-2006"], "cve_count": 1}, {"version": "14.21", "build": "14.21", "status": "stable", "date": "2026-02-12", "source_as_of": "", "url": "/docs/compare/?release=14.21", "manual_url": "/docs/14/release-14-21.html", "source_url": "/docs/release/14.21/", "entry_count": 37, "categories": {"security": 4, "improvement": 17, "bugfix": 16}, "compatibility_count": 0, "cves": ["CVE-2026-2003", "CVE-2026-2004", "CVE-2026-2005", "CVE-2026-2006"], "cve_count": 4}, {"version": "14.20", "build": "14.20", "status": "stable", "date": "2025-11-13", "source_as_of": "", "url": "/docs/compare/?release=14.20", "manual_url": "/docs/14/release-14-20.html", "source_url": "/docs/release/14.20/", "entry_count": 46, "categories": {"security": 2, "bugfix": 23, "improvement": 21}, "compatibility_count": 0, "cves": ["CVE-2025-12817", "CVE-2025-12818"], "cve_count": 2}, {"version": "14.19", "build": "14.19", "status": "stable", "date": "2025-08-14", "source_as_of": "", "url": "/docs/compare/?release=14.19", "manual_url": "/docs/14/release-14-19.html", "source_url": "/docs/release/14.19/", "entry_count": 47, "categories": {"security": 3, "bugfix": 12, "improvement": 32}, "compatibility_count": 0, "cves": ["CVE-2012-0868", "CVE-2017-7484", "CVE-2025-8713", "CVE-2025-8714", "CVE-2025-8715"], "cve_count": 5}, {"version": "14.18", "build": "14.18", "status": "stable", "date": "2025-05-08", "source_as_of": "", "url": "/docs/compare/?release=14.18", "manual_url": "/docs/14/release-14-18.html", "source_url": "/docs/release/14.18/", "entry_count": 35, "categories": {"security": 1, "improvement": 18, "bugfix": 16}, "compatibility_count": 0, "cves": ["CVE-2025-4207"], "cve_count": 1}, {"version": "14.17", "build": "14.17", "status": "stable", "date": "2025-02-20", "source_as_of": "", "url": "/docs/compare/?release=14.17", "manual_url": "/docs/14/release-14-17.html", "source_url": "/docs/release/14.17/", "entry_count": 2, "categories": {"security": 1, "bugfix": 1}, "compatibility_count": 0, "cves": ["CVE-2025-1094"], "cve_count": 1}, {"version": "14.16", "build": "14.16", "status": "stable", "date": "2025-02-13", "source_as_of": "", "url": "/docs/compare/?release=14.16", "manual_url": "/docs/14/release-14-16.html", "source_url": "/docs/release/14.16/", "entry_count": 46, "categories": {"security": 1, "improvement": 18, "bugfix": 26, "performance": 1}, "compatibility_count": 0, "cves": ["CVE-2025-1094"], "cve_count": 1}, {"version": "14.15", "build": "14.15", "status": "stable", "date": "2024-11-21", "source_as_of": "", "url": "/docs/compare/?release=14.15", "manual_url": "/docs/14/release-14-15.html", "source_url": "/docs/release/14.15/", "entry_count": 7, "categories": {"bugfix": 3, "security": 1, "improvement": 3}, "compatibility_count": 0, "cves": ["CVE-2024-10978"], "cve_count": 1}, {"version": "14.14", "build": "14.14", "status": "stable", "date": "2024-11-14", "source_as_of": "", "url": "/docs/compare/?release=14.14", "manual_url": "/docs/14/release-14-14.html", "source_url": "/docs/release/14.14/", "entry_count": 44, "categories": {"security": 4, "bugfix": 17, "improvement": 23}, "compatibility_count": 0, "cves": ["CVE-2024-10976", "CVE-2024-10977", "CVE-2024-10978", "CVE-2024-10979"], "cve_count": 4}, {"version": "14.13", "build": "14.13", "status": "stable", "date": "2024-08-08", "source_as_of": "", "url": "/docs/compare/?release=14.13", "manual_url": "/docs/14/release-14-13.html", "source_url": "/docs/release/14.13/", "entry_count": 42, "categories": {"security": 2, "improvement": 19, "bugfix": 21}, "compatibility_count": 0, "cves": ["CVE-2023-5869", "CVE-2024-7348"], "cve_count": 2}, {"version": "14.12", "build": "14.12", "status": "stable", "date": "2024-05-09", "source_as_of": "", "url": "/docs/compare/?release=14.12", "manual_url": "/docs/14/release-14-12.html", "source_url": "/docs/release/14.12/", "entry_count": 42, "categories": {"security": 1, "bugfix": 18, "improvement": 23}, "compatibility_count": 0, "cves": ["CVE-2024-4317"], "cve_count": 1}, {"version": "14.11", "build": "14.11", "status": "stable", "date": "2024-02-08", "source_as_of": "", "url": "/docs/compare/?release=14.11", "manual_url": "/docs/14/release-14-11.html", "source_url": "/docs/release/14.11/", "entry_count": 49, "categories": {"security": 1, "bugfix": 18, "improvement": 30}, "compatibility_count": 0, "cves": ["CVE-2024-0985"], "cve_count": 1}, {"version": "14.10", "build": "14.10", "status": "stable", "date": "2023-11-09", "source_as_of": "", "url": "/docs/compare/?release=14.10", "manual_url": "/docs/14/release-14-10.html", "source_url": "/docs/release/14.10/", "entry_count": 56, "categories": {"security": 3, "bugfix": 21, "improvement": 32}, "compatibility_count": 0, "cves": ["CVE-2023-5868", "CVE-2023-5869", "CVE-2023-5870"], "cve_count": 3}, {"version": "14.9", "build": "14.9", "status": "stable", "date": "2023-08-10", "source_as_of": "", "url": "/docs/compare/?release=14.9", "manual_url": "/docs/14/release-14-9.html", "source_url": "/docs/release/14.9/", "entry_count": 39, "categories": {"security": 1, "bugfix": 20, "improvement": 18}, "compatibility_count": 0, "cves": ["CVE-2023-39417"], "cve_count": 1}, {"version": "14.8", "build": "14.8", "status": "stable", "date": "2023-05-11", "source_as_of": "", "url": "/docs/compare/?release=14.8", "manual_url": "/docs/14/release-14-8.html", "source_url": "/docs/release/14.8/", "entry_count": 67, "categories": {"security": 2, "bugfix": 31, "improvement": 34}, "compatibility_count": 0, "cves": ["CVE-2023-2454", "CVE-2023-2455"], "cve_count": 2}, {"version": "14.7", "build": "14.7", "status": "stable", "date": "2023-02-09", "source_as_of": "", "url": "/docs/compare/?release=14.7", "manual_url": "/docs/14/release-14-7.html", "source_url": "/docs/release/14.7/", "entry_count": 47, "categories": {"security": 1, "bugfix": 23, "improvement": 23}, "compatibility_count": 0, "cves": ["CVE-2022-41862"], "cve_count": 1}, {"version": "14.6", "build": "14.6", "status": "stable", "date": "2022-11-10", "source_as_of": "", "url": "/docs/compare/?release=14.6", "manual_url": "/docs/14/release-14-6.html", "source_url": "/docs/release/14.6/", "entry_count": 41, "categories": {"improvement": 24, "bugfix": 17}, "compatibility_count": 0, "cves": [], "cve_count": 0}, {"version": "14.5", "build": "14.5", "status": "stable", "date": "2022-08-11", "source_as_of": "", "url": "/docs/compare/?release=14.5", "manual_url": "/docs/14/release-14-5.html", "source_url": "/docs/release/14.5/", "entry_count": 39, "categories": {"security": 2, "bugfix": 18, "improvement": 19}, "compatibility_count": 0, "cves": ["CVE-2022-1552", "CVE-2022-2625"], "cve_count": 2}, {"version": "14.4", "build": "14.4", "status": "stable", "date": "2022-06-16", "source_as_of": "", "url": "/docs/compare/?release=14.4", "manual_url": "/docs/14/release-14-4.html", "source_url": "/docs/release/14.4/", "entry_count": 19, "categories": {"bugfix": 9, "improvement": 10}, "compatibility_count": 0, "cves": [], "cve_count": 0}, {"version": "14.3", "build": "14.3", "status": "stable", "date": "2022-05-12", "source_as_of": "", "url": "/docs/compare/?release=14.3", "manual_url": "/docs/14/release-14-3.html", "source_url": "/docs/release/14.3/", "entry_count": 52, "categories": {"security": 1, "bugfix": 25, "improvement": 26}, "compatibility_count": 0, "cves": ["CVE-2022-1552"], "cve_count": 1}, {"version": "14.2", "build": "14.2", "status": "stable", "date": "2022-02-10", "source_as_of": "", "url": "/docs/compare/?release=14.2", "manual_url": "/docs/14/release-14-2.html", "source_url": "/docs/release/14.2/", "entry_count": 57, "categories": {"improvement": 25, "bugfix": 31, "performance": 1}, "compatibility_count": 0, "cves": [], "cve_count": 0}, {"version": "14.1", "build": "14.1", "status": "stable", "date": "2021-11-11", "source_as_of": "", "url": "/docs/compare/?release=14.1", "manual_url": "/docs/14/release-14-1.html", "source_url": "/docs/release/14.1/", "entry_count": 46, "categories": {"security": 2, "bugfix": 21, "improvement": 23}, "compatibility_count": 0, "cves": ["CVE-2021-23214", "CVE-2021-23222"], "cve_count": 2}, {"version": "14.0", "build": "14.0", "status": "stable", "date": "2021-09-30", "source_as_of": "", "url": "/docs/compare/?release=14.0", "manual_url": "/docs/14/release-14.html", "source_url": "/docs/release/14.0/", "entry_count": 220, "categories": {"compatibility": 27, "feature": 178, "performance": 13, "bugfix": 2}, "compatibility_count": 27, "cves": [], "cve_count": 0}], "initial_entries": [{"id": "14.0-85566e3576b3d533", "cves": [], "html": "<p>User-defined objects that reference certain built-in array functions along with their argument types must be recreated (Tom Lane) <a href=\"https://postgr.es/c/9e38c2bb5\">\u00a7</a></p>\n<p>Specifically, <a href=\"/docs/14/functions-array.html\" title=\"9.19.\u00a0Array Functions and Operators\"><code>array_append()</code></a>, <code>array_prepend()</code>, <code>array_cat()</code>, <code>array_position()</code>, <code>array_positions()</code>, <code>array_remove()</code>, <code>array_replace()</code>, and <a href=\"/docs/14/functions-math.html\" title=\"9.3.\u00a0Mathematical Functions and Operators\"><code>width_bucket()</code></a> used to take <code>anyarray</code> arguments but now take <code>anycompatiblearray</code>. Therefore, user-defined objects like aggregates and operators that reference those array function signatures must be dropped before upgrading, and recreated once the upgrade completes.</p>", "text": "User-defined objects that reference certain built-in array functions along with their argument types must be recreated (Tom Lane) \u00a7 Specifically, array_append(), array_prepend(), array_cat(), array_position(), array_positions(), array_remove(), array_replace(), and width_bucket() used to take anyarray arguments but now take anycompatiblearray. Therefore, user-defined objects like aggregates and operators that reference those array function signatures must be dropped before upgrading, and recreated once the upgrade completes.", "title": "User-defined objects that reference certain built-in array functions along with their argument types must be recreated", "commits": ["9e38c2bb5"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/14.0/#id-1.11.6.30.4", "source_hash": "03f160f8002924740f2c3cf8b544267779607c96aa904bb71ea13a5b360224e0", "section_path": ["Compatibility"], "commit_groups": [["9e38c2bb5"]], "identity_text": "User-defined objects that reference certain built-in array functions along with their argument types must be recreated (Tom Lane) Specifically, array_append(), array_prepend(), array_cat(), array_position(), array_positions(), array_remove(), array_replace(), and width_bucket() used to take anyarray arguments but now take anycompatiblearray. Therefore, user-defined objects like aggregates and operators that reference those array function signatures must be dropped before upgrading, and recreated once the upgrade completes.", "commit_aliases": ["9e38c2bb5"], "source_commits": ["9e38c2bb5"], "source_entry_id": "14.0/migration/001", "db_id": "57c4547257fc6633764aa973e9303863", "patch_ids": ["80d8aa49c80ecce0ddda625f58860fe1"], "statement_hash": "cf5910668b09440227d51039a7d21bbb39434c22e014f4e8c4d1ad20c9a35832", "relations": [{"rule": 2, "type": "related", "target": "08589d1884d0ea2ed7d1f62b5df4cc1d", "evidence": {"same_day": true, "patch_ids": ["80d8aa49c80ecce0ddda625f58860fe1"]}}], "category_label": "Compatibility", "url": "/docs/compare/?release=14.0#14.0-85566e3576b3d533", "migration": true}, {"id": "14.0-d437d09154612fca", "cves": [], "html": "<p>Remove deprecated containment operators <code>@</code> and <code>~</code> for built-in <a href=\"/docs/14/functions-geometry.html\" title=\"9.11.\u00a0Geometric Functions and Operators\">geometric data types</a> and contrib modules <a href=\"/docs/14/cube.html\" title=\"F.9.\u00a0cube\">cube</a>, <a href=\"/docs/14/hstore.html\" title=\"F.16.\u00a0hstore\">hstore</a>, <a href=\"/docs/14/intarray.html\" title=\"F.18.\u00a0intarray\">intarray</a>, and <a href=\"/docs/14/seg.html\" title=\"F.36.\u00a0seg\">seg</a> (Justin Pryzby) <a href=\"https://postgr.es/c/2f70fdb06\">\u00a7</a> <a href=\"https://postgr.es/c/112d411fb\">\u00a7</a></p>\n<p>The more consistently named <code>&lt;@</code> and <code>@&gt;</code> have been recommended for many years.</p>", "text": "Remove deprecated containment operators @ and ~ for built-in geometric data types and contrib modules cube, hstore, intarray, and seg (Justin Pryzby) \u00a7 \u00a7 The more consistently named <@ and @> have been recommended for many years.", "title": "Remove deprecated containment operators @ and ~ for built-in geometric data types and contrib modules cube, hstore, intarray, and seg", "commits": ["112d411fb", "2f70fdb06"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/14.0/#id-1.11.6.30.4", "source_hash": "2c670c96567b3173f8fdb9062b5807e1cc981f5f58cff5ace59ea290ecbd2dd1", "section_path": ["Compatibility"], "commit_groups": [["112d411fb"], ["2f70fdb06"]], "identity_text": "Remove deprecated containment operators @ and ~ for built-in geometric data types and contrib modules cube , hstore , intarray , and seg (Justin Pryzby) The more consistently named <@ and @> have been recommended for many years.", "commit_aliases": ["112d411fb", "2f70fdb06"], "source_commits": ["112d411fb", "2f70fdb06"], "source_entry_id": "14.0/migration/002", "db_id": "237660b1fbb8dd20017c6175267e95ec", "patch_ids": ["3c681f334455e0bd48271e5716d5b559", "c4ef1bade2dd6f369995841746768f0a"], "statement_hash": "4894120ca206bfdd14b3fa514ce721d3d3e55d7179d58bcd3cf27113bda8afdf", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=14.0#14.0-d437d09154612fca", "migration": true}, {"id": "14.0-a29178c6e12bef2d", "cves": [], "html": "<p>Fix <a href=\"/docs/14/functions-textsearch.html\" title=\"9.13.\u00a0Text Search Functions and Operators\"><code>to_tsquery()</code></a> and <code>websearch_to_tsquery()</code> to properly parse query text containing discarded tokens (Alexander Korotkov) <a href=\"https://postgr.es/c/0c4f355c6\">\u00a7</a></p>\n<p>Certain discarded tokens, like underscore, caused the output of these functions to produce incorrect tsquery output, e.g., both <code>websearch_to_tsquery('\"pg_class pg\"')</code> and <code>to_tsquery('pg_class &lt;-&gt; pg')</code> used to output <code>( 'pg' &amp; 'class' ) &lt;-&gt; 'pg'</code>, but now both output <code>'pg' &lt;-&gt; 'class' &lt;-&gt; 'pg'</code>.</p>", "text": "Fix to_tsquery() and websearch_to_tsquery() to properly parse query text containing discarded tokens (Alexander Korotkov) \u00a7 Certain discarded tokens, like underscore, caused the output of these functions to produce incorrect tsquery output, e.g., both websearch_to_tsquery('\"pg_class pg\"') and to_tsquery('pg_class <-> pg') used to output ( 'pg' & 'class' ) <-> 'pg', but now both output 'pg' <-> 'class' <-> 'pg'.", "title": "Fix to_tsquery() and websearch_to_tsquery() to properly parse query text containing discarded tokens", "commits": ["0c4f355c6"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/14.0/#id-1.11.6.30.4", "source_hash": "4298a06ac12bca85270f0e2c74b7654c0938a1b65628b606c89a3458e2423487", "section_path": ["Compatibility"], "commit_groups": [["0c4f355c6"]], "identity_text": "Fix to_tsquery() and websearch_to_tsquery() to properly parse query text containing discarded tokens (Alexander Korotkov) Certain discarded tokens, like underscore, caused the output of these functions to produce incorrect tsquery output, e.g., both websearch_to_tsquery('\"pg_class pg\"') and to_tsquery('pg_class <-> pg') used to output ( 'pg' & 'class' ) <-> 'pg', but now both output 'pg' <-> 'class' <-> 'pg'.", "commit_aliases": ["0c4f355c6"], "source_commits": ["0c4f355c6"], "source_entry_id": "14.0/migration/003", "db_id": "4e17e1dee7fbfb6b0b6d4fad1552a279", "patch_ids": ["0e306570bb0843294a746eafb85983fa"], "statement_hash": "97c0e7ee4f9512aa4db16ecfdb57f09142f892d3b5ae076fe639a969fccf67df", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=14.0#14.0-a29178c6e12bef2d", "migration": true}, {"id": "14.0-add148e34dafd59e", "cves": [], "html": "<p>Fix <a href=\"/docs/14/functions-textsearch.html\" title=\"9.13.\u00a0Text Search Functions and Operators\"><code>websearch_to_tsquery()</code></a> to properly parse multiple adjacent discarded tokens in quotes (Alexander Korotkov) <a href=\"https://postgr.es/c/eb086056f\">\u00a7</a></p>\n<p>Previously, quoted text that contained multiple adjacent discarded tokens was treated as multiple tokens, causing incorrect tsquery output, e.g., <code>websearch_to_tsquery('\"aaa: bbb\"')</code> used to output <code>'aaa' &lt;2&gt; 'bbb'</code>, but now outputs <code>'aaa' &lt;-&gt; 'bbb'</code>.</p>", "text": "Fix websearch_to_tsquery() to properly parse multiple adjacent discarded tokens in quotes (Alexander Korotkov) \u00a7 Previously, quoted text that contained multiple adjacent discarded tokens was treated as multiple tokens, causing incorrect tsquery output, e.g., websearch_to_tsquery('\"aaa: bbb\"') used to output 'aaa' <2> 'bbb', but now outputs 'aaa' <-> 'bbb'.", "title": "Fix websearch_to_tsquery() to properly parse multiple adjacent discarded tokens in quotes", "commits": ["eb086056f"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/14.0/#id-1.11.6.30.4", "source_hash": "91bcc924c0e50b834ac0f2076b27b3fd648517ce7879ccaf492fafed5f41a653", "section_path": ["Compatibility"], "commit_groups": [["eb086056f"]], "identity_text": "Fix websearch_to_tsquery() to properly parse multiple adjacent discarded tokens in quotes (Alexander Korotkov) Previously, quoted text that contained multiple adjacent discarded tokens was treated as multiple tokens, causing incorrect tsquery output, e.g., websearch_to_tsquery('\"aaa: bbb\"') used to output 'aaa' <2> 'bbb', but now outputs 'aaa' <-> 'bbb'.", "commit_aliases": ["eb086056f"], "source_commits": ["eb086056f"], "source_entry_id": "14.0/migration/004", "db_id": "72afb05bbfc01aee66adf945c95d27fc", "patch_ids": ["6f2cbaea9fe17c80a00dda4b5bd5feb1"], "statement_hash": "e4580984708a3dfa92cd7467b1391dda17ca65e971342a37ae4f47a537340f13", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=14.0#14.0-add148e34dafd59e", "migration": true}, {"id": "14.0-c3df10657ed1fb4f", "cves": [], "html": "<p>Change <a href=\"/docs/14/functions-datetime.html\" title=\"9.9.\u00a0Date/Time Functions and Operators\"><code>EXTRACT()</code></a> to return type <code>numeric</code> instead of <code>float8</code> (Peter Eisentraut) <a href=\"https://postgr.es/c/a2da77cdb\">\u00a7</a></p>\n<p>This avoids loss-of-precision issues in some usages. The old behavior can still be obtained by using the old underlying function <code>date_part()</code>.</p>\n<p>Also, <code>EXTRACT(date)</code> now throws an error for units that are not part of the <code>date</code> data type.</p>", "text": "Change EXTRACT() to return type numeric instead of float8 (Peter Eisentraut) \u00a7 This avoids loss-of-precision issues in some usages. The old behavior can still be obtained by using the old underlying function date_part(). Also, EXTRACT(date) now throws an error for units that are not part of the date data type.", "title": "Change EXTRACT() to return type numeric instead of float8", "commits": ["a2da77cdb"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/14.0/#id-1.11.6.30.4", "source_hash": "3d5fb419fc14c12614310539fd74d232537b99f3353b5aa154e5eb0603d2b96f", "section_path": ["Compatibility"], "commit_groups": [["a2da77cdb"]], "identity_text": "Change EXTRACT() to return type numeric instead of float8 (Peter Eisentraut) This avoids loss-of-precision issues in some usages. The old behavior can still be obtained by using the old underlying function date_part(). Also, EXTRACT(date) now throws an error for units that are not part of the date data type.", "commit_aliases": ["a2da77cdb"], "source_commits": ["a2da77cdb"], "source_entry_id": "14.0/migration/005", "db_id": "5ef659058d1ea38bfd747bc588b76215", "patch_ids": ["dc0db4254cd4cf7f3b8a96c92d51fdf3"], "statement_hash": "6470ce74b5b22c049abb0e81bcfec8cbf6d9086544f80952983d679515adbe63", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=14.0#14.0-c3df10657ed1fb4f", "migration": true}, {"id": "14.0-fcadd8743e360830", "cves": [], "html": "<p>Change <a href=\"/docs/14/functions-aggregate.html\" title=\"9.21.\u00a0Aggregate Functions\"><code>var_samp()</code></a> and <code>stddev_samp()</code> with numeric parameters to return NULL when the input is a single NaN value (Tom Lane) <a href=\"https://postgr.es/c/23cbeda50\">\u00a7</a></p>\n<p>Previously <code>NaN</code> was returned.</p>", "text": "Change var_samp() and stddev_samp() with numeric parameters to return NULL when the input is a single NaN value (Tom Lane) \u00a7 Previously NaN was returned.", "title": "Change var_samp() and stddev_samp() with numeric parameters to return NULL when the input is a single NaN value", "commits": ["23cbeda50"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/14.0/#id-1.11.6.30.4", "source_hash": "5398ea076f27d0d1163a71eb037854610e87afa055b052e0bc820afeec09cfb7", "section_path": ["Compatibility"], "commit_groups": [["23cbeda50"]], "identity_text": "Change var_samp() and stddev_samp() with numeric parameters to return NULL when the input is a single NaN value (Tom Lane) Previously NaN was returned.", "commit_aliases": ["23cbeda50"], "source_commits": ["23cbeda50"], "source_entry_id": "14.0/migration/006", "db_id": "7926bdd9a7f4eb45afda848b072764ac", "patch_ids": ["2f2f5012d9ee6dedf58e95bb44b60f35"], "statement_hash": "c20169549d365b673fd8307fdc3ed46e492d351f54c0de93681ac37923fa66f0", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=14.0#14.0-fcadd8743e360830", "migration": true}, {"id": "14.0-e6d7c1e391d32f00", "cves": [], "html": "<p>Return false for <a href=\"/docs/14/functions-info.html\" title=\"9.26.\u00a0System Information Functions and Operators\"><code>has_column_privilege()</code></a> checks on non-existent or dropped columns when using attribute numbers (Joe Conway) <a href=\"https://postgr.es/c/b12bd4869\">\u00a7</a></p>\n<p>Previously such attribute numbers returned an invalid-column error.</p>", "text": "Return false for has_column_privilege() checks on non-existent or dropped columns when using attribute numbers (Joe Conway) \u00a7 Previously such attribute numbers returned an invalid-column error.", "title": "Return false for has_column_privilege() checks on non-existent or dropped columns when using attribute numbers", "commits": ["b12bd4869"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/14.0/#id-1.11.6.30.4", "source_hash": "f7e10974c17f9e8232eee021be237ee9374d6a22d0723a47348b8561f9661bce", "section_path": ["Compatibility"], "commit_groups": [["b12bd4869"]], "identity_text": "Return false for has_column_privilege() checks on non-existent or dropped columns when using attribute numbers (Joe Conway) Previously such attribute numbers returned an invalid-column error.", "commit_aliases": ["b12bd4869"], "source_commits": ["b12bd4869"], "source_entry_id": "14.0/migration/007", "db_id": "2a8dcc67f64402d654533acf7c9a8e8d", "patch_ids": ["9bf521aea59479b5aa7908981cec9608"], "statement_hash": "5e80d0c2d65c146bdc3748b2dab4ed0fa6fc2cafd2f530f3fd4a76fc9ade0341", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=14.0#14.0-e6d7c1e391d32f00", "migration": true}, {"id": "14.0-21cd13ab9dddb8d4", "cves": [], "html": "<p>Fix handling of infinite <a href=\"/docs/14/sql-expressions.html#SYNTAX-WINDOW-FUNCTIONS\" title=\"4.2.8.\u00a0Window Function Calls\">window function</a> ranges (Tom Lane) <a href=\"https://postgr.es/c/a4faef8f8\">\u00a7</a></p>\n<p>Previously window frame clauses like <code>'inf' PRECEDING AND 'inf' FOLLOWING</code> returned incorrect results.</p>", "text": "Fix handling of infinite window function ranges (Tom Lane) \u00a7 Previously window frame clauses like 'inf' PRECEDING AND 'inf' FOLLOWING returned incorrect results.", "title": "Fix handling of infinite window function ranges", "commits": ["a4faef8f8"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/14.0/#id-1.11.6.30.4", "source_hash": "8c7d3f9734f20f728910411e115b035aec1d067c3b6446550321c00d0dd76b15", "section_path": ["Compatibility"], "commit_groups": [["a4faef8f8"]], "identity_text": "Fix handling of infinite window function ranges (Tom Lane) Previously window frame clauses like 'inf' PRECEDING AND 'inf' FOLLOWING returned incorrect results.", "commit_aliases": ["a4faef8f8"], "source_commits": ["a4faef8f8"], "source_entry_id": "14.0/migration/008", "db_id": "cc5a2618863c67b130fa5e3934818edf", "patch_ids": ["c428437083341760a50eba91330516b2"], "statement_hash": "e3ea4024d2bb0f2bc0147faf7250edb51b1c0d08e11c05a1c9fc636733c136e6", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=14.0#14.0-21cd13ab9dddb8d4", "migration": true}, {"id": "14.0-e43e3f5299c6e04a", "cves": [], "html": "<p>Remove factorial operators <code>!</code> and <code>!!</code>, as well as function <code>numeric_fac()</code> (Mark Dilger) <a href=\"https://postgr.es/c/76f412ab3\">\u00a7</a></p>\n<p>The <a href=\"/docs/14/functions-math.html\" title=\"9.3.\u00a0Mathematical Functions and Operators\"><code>factorial()</code></a> function is still supported.</p>", "text": "Remove factorial operators ! and !!, as well as function numeric_fac() (Mark Dilger) \u00a7 The factorial() function is still supported.", "title": "Remove factorial operators ! and !!, as well as function numeric_fac()", "commits": ["76f412ab3"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/14.0/#id-1.11.6.30.4", "source_hash": "6b719e2f8f6caa64d47e8f82f8764882d7834044c5d850ca7c8756e698435a4c", "section_path": ["Compatibility"], "commit_groups": [["76f412ab3"]], "identity_text": "Remove factorial operators ! and !!, as well as function numeric_fac() (Mark Dilger) The factorial() function is still supported.", "commit_aliases": ["76f412ab3"], "source_commits": ["76f412ab3"], "source_entry_id": "14.0/migration/009", "db_id": "ad3c72cb6f930e94293095180cd73086", "patch_ids": ["f4e9888531ffe53a5bc8e42db5222e8c"], "statement_hash": "31cf7628109e5f5375596af702aa7fc9664a665e5131995216ec7874c47727a1", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=14.0#14.0-e43e3f5299c6e04a", "migration": true}, {"id": "14.0-54dea678f4f5c69b", "cves": [], "html": "<p>Disallow <code>factorial()</code> of negative numbers (Peter Eisentraut) <a href=\"https://postgr.es/c/0a40563ea\">\u00a7</a></p>\n<p>Previously such cases returned 1.</p>", "text": "Disallow factorial() of negative numbers (Peter Eisentraut) \u00a7 Previously such cases returned 1.", "title": "Disallow factorial() of negative numbers", "commits": ["0a40563ea"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/14.0/#id-1.11.6.30.4", "source_hash": "5b325d7866b4a3419d1b70f2818ac3d6e68c16509813c4c0a4192ad7373cc8bd", "section_path": ["Compatibility"], "commit_groups": [["0a40563ea"]], "identity_text": "Disallow factorial() of negative numbers (Peter Eisentraut) Previously such cases returned 1.", "commit_aliases": ["0a40563ea"], "source_commits": ["0a40563ea"], "source_entry_id": "14.0/migration/010", "db_id": "a82ab3256c778cee96b7de5dae3389d2", "patch_ids": ["cd388f0be397d41474e22ca994181ccd"], "statement_hash": "0c1388d837df3e23a4dc76a2373dad719ba114e9e2e56e89ab0f736232601a04", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=14.0#14.0-54dea678f4f5c69b", "migration": true}, {"id": "14.0-eb0963fef9639111", "cves": [], "html": "<p>Remove support for <a href=\"/docs/14/sql-createoperator.html\" title=\"CREATE OPERATOR\">postfix</a> (right-unary) operators (Mark Dilger) <a href=\"https://postgr.es/c/1ed6b8956\">\u00a7</a></p>\n<p><span>pg_dump</span> and <span>pg_upgrade</span> will warn if postfix operators are being dumped.</p>", "text": "Remove support for postfix (right-unary) operators (Mark Dilger) \u00a7 pg_dump and pg_upgrade will warn if postfix operators are being dumped.", "title": "Remove support for postfix (right-unary) operators", "commits": ["1ed6b8956"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/14.0/#id-1.11.6.30.4", "source_hash": "faeed0461c17932988c87c6d96b8bd0c0d1d366070de77a1700a737710dd4cfe", "section_path": ["Compatibility"], "commit_groups": [["1ed6b8956"]], "identity_text": "Remove support for postfix (right-unary) operators (Mark Dilger) pg_dump and pg_upgrade will warn if postfix operators are being dumped.", "commit_aliases": ["1ed6b8956"], "source_commits": ["1ed6b8956"], "source_entry_id": "14.0/migration/011", "db_id": "516b18fbda2a69208204390b1a1c4a71", "patch_ids": ["00fd954ed0ced2a53ee2a5342b976432"], "statement_hash": "874d9a3baac9e9f9ff170b2db4886412d0524ecc66805656a455387ab6fe5d2d", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=14.0#14.0-eb0963fef9639111", "migration": true}, {"id": "14.0-674b08adca6e6a9c", "cves": [], "html": "<p>Allow <code>\\D</code> and <code>\\W</code> shorthands to match newlines in <a href=\"/docs/14/functions-matching.html#FUNCTIONS-POSIX-REGEXP\" title=\"9.7.3.\u00a0POSIX Regular Expressions\">regular expression</a> newline-sensitive mode (Tom Lane) <a href=\"https://postgr.es/c/7dc13a0f0\">\u00a7</a></p>\n<p>Previously they did not match newlines in this mode, but that disagrees with the behavior of other common regular expression engines. <code>[^[:digit:]]</code> or <code>[^[:word:]]</code> can be used to get the old behavior.</p>", "text": "Allow \\D and \\W shorthands to match newlines in regular expression newline-sensitive mode (Tom Lane) \u00a7 Previously they did not match newlines in this mode, but that disagrees with the behavior of other common regular expression engines. [^[:digit:]] or [^[:word:]] can be used to get the old behavior.", "title": "Allow \\D and \\W shorthands to match newlines in regular expression newline-sensitive mode", "commits": ["7dc13a0f0"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/14.0/#id-1.11.6.30.4", "source_hash": "fe10d6d365bc38be4474c845de8aa5a2bcb63109bafc8c7066d5cc978f8b6faa", "section_path": ["Compatibility"], "commit_groups": [["7dc13a0f0"]], "identity_text": "Allow \\D and \\W shorthands to match newlines in regular expression newline-sensitive mode (Tom Lane) Previously they did not match newlines in this mode, but that disagrees with the behavior of other common regular expression engines. [^[:digit:]] or [^[:word:]] can be used to get the old behavior.", "commit_aliases": ["7dc13a0f0"], "source_commits": ["7dc13a0f0"], "source_entry_id": "14.0/migration/012", "db_id": "f62ca7ae8f621f84f8a67c4654d0b38e", "patch_ids": ["0916cbb882cf32b7872521b474cd59f0"], "statement_hash": "458ed27a0ada8bd19080ef7704f9f1d318b8e459f516f728330fc98058b20c72", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=14.0#14.0-674b08adca6e6a9c", "migration": true}, {"id": "14.0-dc3c28800f9e00f1", "cves": [], "html": "<p>Disregard constraints when matching regular expression <a href=\"/docs/14/functions-matching.html#POSIX-ESCAPE-SEQUENCES\" title=\"9.7.3.3.\u00a0Regular Expression Escapes\">back-references</a> (Tom Lane) <a href=\"https://postgr.es/c/4aea704a5\">\u00a7</a></p>\n<p>For example, in <code>(^\\d+).*\\1</code>, the <code>^</code> constraint should be applied at the start of the string, but not when matching <code>\\1</code>.</p>", "text": "Disregard constraints when matching regular expression back-references (Tom Lane) \u00a7 For example, in (^\\d+).*\\1, the ^ constraint should be applied at the start of the string, but not when matching \\1.", "title": "Disregard constraints when matching regular expression back-references", "commits": ["4aea704a5"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/14.0/#id-1.11.6.30.4", "source_hash": "fa5574c921b9259d6fb145fb45fd2de3007bbd340e6a80ce8b70f30560d6fa9a", "section_path": ["Compatibility"], "commit_groups": [["4aea704a5"]], "identity_text": "Disregard constraints when matching regular expression back-references (Tom Lane) For example, in (^\\d+).*\\1, the ^ constraint should be applied at the start of the string, but not when matching \\1.", "commit_aliases": ["4aea704a5"], "source_commits": ["4aea704a5"], "source_entry_id": "14.0/migration/013", "db_id": "f798d8d0d167dba6f45c7681ea791ae2", "patch_ids": ["3cd853007451027734334534bef65fae"], "statement_hash": "d2dfe57fe621bca079f0140b1b748cb671966ae375c94561538b10365b35a2ed", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=14.0#14.0-dc3c28800f9e00f1", "migration": true}, {"id": "14.0-3b134586c815622b", "cves": [], "html": "<p>Disallow <code>\\w</code> as a range start or end in regular expression character classes (Tom Lane) <a href=\"https://postgr.es/c/2a0af7fe4\">\u00a7</a></p>\n<p>This previously was allowed but produced unexpected results.</p>", "text": "Disallow \\w as a range start or end in regular expression character classes (Tom Lane) \u00a7 This previously was allowed but produced unexpected results.", "title": "Disallow \\w as a range start or end in regular expression character classes", "commits": ["2a0af7fe4"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/14.0/#id-1.11.6.30.4", "source_hash": "14a46122cb94db327ce1ac31393ffad7cda594b0f62f897352495cbec80cd7be", "section_path": ["Compatibility"], "commit_groups": [["2a0af7fe4"]], "identity_text": "Disallow \\w as a range start or end in regular expression character classes (Tom Lane) This previously was allowed but produced unexpected results.", "commit_aliases": ["2a0af7fe4"], "source_commits": ["2a0af7fe4"], "source_entry_id": "14.0/migration/014", "db_id": "7cb33f40db82cf57d3f6f027f0bd7fa4", "patch_ids": ["a7eb1e3ebcb335443b46af32516407cc"], "statement_hash": "73eaa88216c7e67d8ca71eb8abfff9fe074f0d5b60217e60a1876758275466c1", "relations": [{"rule": 2, "type": "related", "target": "11855fff64e4bfd4f316452868bdaf21", "evidence": {"same_day": true, "patch_ids": ["a7eb1e3ebcb335443b46af32516407cc"], "ambiguous_patch_ids": ["a7eb1e3ebcb335443b46af32516407cc"]}}, {"rule": 2, "type": "related", "target": "31b906e8faf3983c67c4ba76c9bcbe42", "evidence": {"same_day": true, "patch_ids": ["a7eb1e3ebcb335443b46af32516407cc"], "ambiguous_patch_ids": ["a7eb1e3ebcb335443b46af32516407cc"]}}], "category_label": "Compatibility", "url": "/docs/compare/?release=14.0#14.0-3b134586c815622b", "migration": true}, {"id": "14.0-f3f9a68bd130f524", "cves": [], "html": "<p>Require <a href=\"/docs/14/runtime-config-custom.html\" title=\"20.16.\u00a0Customized Options\">custom server parameter</a> names to use only characters that are valid in unquoted <acronym>SQL</acronym> identifiers (Tom Lane) <a href=\"https://postgr.es/c/3db826bd5\">\u00a7</a> <a href=\"https://postgr.es/c/3db826bd5\">\u00a7</a></p>", "text": "Require custom server parameter names to use only characters that are valid in unquoted SQL identifiers (Tom Lane) \u00a7 \u00a7", "title": "Require custom server parameter names to use only characters that are valid in unquoted SQL identifiers", "commits": ["3db826bd5"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/14.0/#id-1.11.6.30.4", "source_hash": "67f466cd55180af38ef79167d0f7d82a906c3a65c15ea1407028a364129639c3", "section_path": ["Compatibility"], "commit_groups": [["3db826bd5"]], "identity_text": "Require custom server parameter names to use only characters that are valid in unquoted SQL identifiers (Tom Lane)", "commit_aliases": ["3db826bd5"], "source_commits": ["3db826bd5"], "source_entry_id": "14.0/migration/015", "db_id": "e27c0102cf63765c2ca9bdb10c077d0e", "patch_ids": ["a99b80012b5bc8560e6cceeb7486fda5"], "statement_hash": "d4101a6b9beb1104c001aab0a704d01f1fbbac17350fe87d5197ff257bd7491b", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=14.0#14.0-f3f9a68bd130f524", "migration": true}, {"id": "14.0-360b4aff4fef87f5", "cves": [], "html": "<p>Change the default of the <a href=\"/docs/14/runtime-config-connection.html#GUC-PASSWORD-ENCRYPTION\">password_encryption</a> server parameter to <code>scram-sha-256</code> (Peter Eisentraut) <a href=\"https://postgr.es/c/c7eab0e97\">\u00a7</a></p>\n<p>Previously it was <code>md5</code>. All new passwords will be stored as SHA256 unless this server setting is changed or the password is specified in MD5 format. Also, the legacy (and undocumented) Boolean-like values which were previously synonyms for <code>md5</code> are no longer accepted.</p>", "text": "Change the default of the password_encryption server parameter to scram-sha-256 (Peter Eisentraut) \u00a7 Previously it was md5. All new passwords will be stored as SHA256 unless this server setting is changed or the password is specified in MD5 format. Also, the legacy (and undocumented) Boolean-like values which were previously synonyms for md5 are no longer accepted.", "title": "Change the default of the password_encryption server parameter to scram-sha-256", "commits": ["c7eab0e97"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/14.0/#id-1.11.6.30.4", "source_hash": "8067c3b010176c9042798d257d3a0be08819a6486d40242d9cec4a541fd9c171", "section_path": ["Compatibility"], "commit_groups": [["c7eab0e97"]], "identity_text": "Change the default of the guc-password-encryption server parameter to scram-sha-256 (Peter Eisentraut) Previously it was md5. All new passwords will be stored as SHA256 unless this server setting is changed or the password is specified in MD5 format. Also, the legacy (and undocumented) Boolean-like values which were previously synonyms for md5 are no longer accepted.", "commit_aliases": ["c7eab0e97"], "source_commits": ["c7eab0e97"], "source_entry_id": "14.0/migration/016", "db_id": "17481888e35d734db6901338383970ef", "patch_ids": ["7c902b1caef8f8c6c13adfafbfa817bc"], "statement_hash": "88d01d33bbb1292fa445bd927f4ed5d1df132f6baf3ce2671eefecfc28000f1b", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=14.0#14.0-360b4aff4fef87f5", "migration": true}, {"id": "14.0-c488d77ab8d7845d", "cves": [], "html": "<p>Remove server parameter <code>vacuum_cleanup_index_scale_factor</code> (Peter Geoghegan) <a href=\"https://postgr.es/c/9f3665fbf\">\u00a7</a> <a href=\"https://postgr.es/c/effdd3f3b\">\u00a7</a></p>\n<p>This setting was ignored starting in <span>PostgreSQL</span> version 13.3.</p>", "text": "Remove server parameter vacuum_cleanup_index_scale_factor (Peter Geoghegan) \u00a7 \u00a7 This setting was ignored starting in PostgreSQL version 13.3.", "title": "Remove server parameter vacuum_cleanup_index_scale_factor", "commits": ["9f3665fbf", "effdd3f3b"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/14.0/#id-1.11.6.30.4", "source_hash": "42314d33b85d55579681a44b7af8868d631607db06ca94203217fd5bfe3aaa37", "section_path": ["Compatibility"], "commit_groups": [["9663d1244", "9f3665fbf"], ["effdd3f3b"]], "identity_text": "Remove server parameter vacuum_cleanup_index_scale_factor (Peter Geoghegan) This setting was ignored starting in PostgreSQL version 13.3.", "commit_aliases": ["9663d1244", "9f3665fbf", "effdd3f3b"], "source_commits": ["9f3665fbf", "effdd3f3b"], "source_entry_id": "14.0/migration/017", "db_id": "33ba05eddab9ba712287813f7255b7e2", "patch_ids": ["0082ed34d90cec899922fbb0312e7343", "7d139072a7e720186d8972f31f3b9f5e"], "statement_hash": "596766df8cab895bd9dc6e17434ef97dfa0828fe647d5c1c180298c950486ce0", "relations": [{"rule": 2, "type": "related", "target": "905141292f2512fd9b9052468cc7ff7d", "evidence": {"same_day": false, "patch_ids": ["7d139072a7e720186d8972f31f3b9f5e"]}}], "category_label": "Compatibility", "url": "/docs/compare/?release=14.0#14.0-c488d77ab8d7845d", "migration": true}, {"id": "14.0-df2e37ffd01f7a81", "cves": [], "html": "<p>Remove server parameter <code>operator_precedence_warning</code> (Tom Lane) <a href=\"https://postgr.es/c/a676386b5\">\u00a7</a></p>\n<p>This setting was used for warning applications about <span>PostgreSQL</span> 9.5 changes.</p>", "text": "Remove server parameter operator_precedence_warning (Tom Lane) \u00a7 This setting was used for warning applications about PostgreSQL 9.5 changes.", "title": "Remove server parameter operator_precedence_warning", "commits": ["a676386b5"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/14.0/#id-1.11.6.30.4", "source_hash": "beb20e51897903bbf93b545d9ac370a56a52e3b4b8b94c64259ea22b46676cc6", "section_path": ["Compatibility"], "commit_groups": [["a676386b5"]], "identity_text": "Remove server parameter operator_precedence_warning (Tom Lane) This setting was used for warning applications about PostgreSQL 9.5 changes.", "commit_aliases": ["a676386b5"], "source_commits": ["a676386b5"], "source_entry_id": "14.0/migration/018", "db_id": "dff5c30eb6d405f6e27999750e19b063", "patch_ids": ["c3bebe2adc3f41263f2ecbfb91c7d558"], "statement_hash": "2037da2699ec34b8c38b1b1bbab6935ac8edfe7590d447ed2ff5632036bda7a3", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=14.0#14.0-df2e37ffd01f7a81", "migration": true}, {"id": "14.0-502ae2ae25b4a337", "cves": [], "html": "<p>Overhaul the specification of <code>clientcert</code> in <a href=\"/docs/14/auth-pg-hba-conf.html\" title=\"21.1.\u00a0The pg_hba.conf File\"><code>pg_hba.conf</code></a> (Kyotaro Horiguchi) <a href=\"https://postgr.es/c/253f1025d\">\u00a7</a></p>\n<p>Values <code>1</code>/<code>0</code>/<code>no-verify</code> are no longer supported; only the strings <code>verify-ca</code> and <code>verify-full</code> can be used. Also, disallow <code>verify-ca</code> if cert authentication is enabled since cert requires <code>verify-full</code> checking.</p>", "text": "Overhaul the specification of clientcert in pg_hba.conf (Kyotaro Horiguchi) \u00a7 Values 1/0/no-verify are no longer supported; only the strings verify-ca and verify-full can be used. Also, disallow verify-ca if cert authentication is enabled since cert requires verify-full checking.", "title": "Overhaul the specification of clientcert in pg_hba.conf", "commits": ["253f1025d"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/14.0/#id-1.11.6.30.4", "source_hash": "44e215b9be267cdf9ded934f2c935ff01469d9663532d5b54bc5b1440bcf1230", "section_path": ["Compatibility"], "commit_groups": [["253f1025d"]], "identity_text": "Overhaul the specification of clientcert in pg_hba.conf (Kyotaro Horiguchi) Values 1/0/no-verify are no longer supported; only the strings verify-ca and verify-full can be used. Also, disallow verify-ca if cert authentication is enabled since cert requires verify-full checking.", "commit_aliases": ["253f1025d"], "source_commits": ["253f1025d"], "source_entry_id": "14.0/migration/019", "db_id": "2c3a3ed1211816e4246ff740b1861659", "patch_ids": ["5df51c30e7580345e0a15666e915829f"], "statement_hash": "3a4972c31799da56d0d33eb4ba0bd5a90e49923092e338a689c706a840756ca0", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=14.0#14.0-502ae2ae25b4a337", "migration": true}, {"id": "14.0-fa3437588a928b6c", "cves": [], "html": "<p>Remove support for <a href=\"/docs/14/runtime-config-connection.html#RUNTIME-CONFIG-CONNECTION-SSL\" title=\"20.3.3.\u00a0SSL\"><acronym>SSL</acronym></a> compression (Daniel Gustafsson, Michael Paquier) <a href=\"https://postgr.es/c/f9264d152\">\u00a7</a> <a href=\"https://postgr.es/c/0ba71107e\">\u00a7</a></p>\n<p>This was already disabled by default in previous <span>PostgreSQL</span> releases, and most modern OpenSSL and <acronym>TLS</acronym> versions no longer support it.</p>", "text": "Remove support for SSL compression (Daniel Gustafsson, Michael Paquier) \u00a7 \u00a7 This was already disabled by default in previous PostgreSQL releases, and most modern OpenSSL and TLS versions no longer support it.", "title": "Remove support for SSL compression", "commits": ["0ba71107e", "f9264d152"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/14.0/#id-1.11.6.30.4", "source_hash": "0583a73867f097018ea03347ce3d69e5889f63a389c399f33fff0bfaead56754", "section_path": ["Compatibility"], "commit_groups": [["0ba71107e"], ["f9264d152"]], "identity_text": "Remove support for SSL compression (Daniel Gustafsson, Michael Paquier) This was already disabled by default in previous PostgreSQL releases, and most modern OpenSSL and TLS versions no longer support it.", "commit_aliases": ["0ba71107e", "f9264d152"], "source_commits": ["0ba71107e", "f9264d152"], "source_entry_id": "14.0/migration/020", "db_id": "58b01151c05cf3c8e1c1d9a7930a327a", "patch_ids": ["6bb0210077a05748c0769055d2db46d9", "aec84612749cf2a254957427d19b78a0"], "statement_hash": "fe4ec9c7fb6b5e8b54fd54f10e5a67890dd354fd04fdcc3593351cc15ac8b9ef", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=14.0#14.0-fa3437588a928b6c", "migration": true}, {"id": "14.0-f4ff2add1a8885c7", "cves": [], "html": "<p>Remove server and <a href=\"/docs/14/libpq.html\" title=\"Chapter\u00a034.\u00a0libpq \u2014 C Library\">libpq</a> support for the version 2 <a href=\"/docs/14/protocol.html\" title=\"Chapter\u00a053.\u00a0Frontend/Backend Protocol\">wire protocol</a> (Heikki Linnakangas) <a href=\"https://postgr.es/c/3174d69fb\">\u00a7</a></p>\n<p>This was last used as the default in <span>PostgreSQL</span> 7.3 (released in 2002).</p>", "text": "Remove server and libpq support for the version 2 wire protocol (Heikki Linnakangas) \u00a7 This was last used as the default in PostgreSQL 7.3 (released in 2002).", "title": "Remove server and libpq support for the version 2 wire protocol", "commits": ["3174d69fb"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/14.0/#id-1.11.6.30.4", "source_hash": "0f2d63c788bdb205cf66033b4517d051b24374e352f7a5351256e398b26de55a", "section_path": ["Compatibility"], "commit_groups": [["3174d69fb"]], "identity_text": "Remove server and libpq support for the version 2 wire protocol (Heikki Linnakangas) This was last used as the default in PostgreSQL 7.3 (released in 2002).", "commit_aliases": ["3174d69fb"], "source_commits": ["3174d69fb"], "source_entry_id": "14.0/migration/021", "db_id": "57e12b582d9b7d946a2152c1af36c720", "patch_ids": ["d22d532fd6aed0149de79659facb716c"], "statement_hash": "bd5d1715607fa1564908b90d72937f93a51f6ef924c24ec5457ccc4b601b099a", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=14.0#14.0-f4ff2add1a8885c7", "migration": true}, {"id": "14.0-c2cce8cb5a49fd40", "cves": [], "html": "<p>Disallow single-quoting of the language name in the <a href=\"/docs/14/sql-createlanguage.html\" title=\"CREATE LANGUAGE\"><code>CREATE/DROP LANGUAGE</code></a> command (Peter Eisentraut) <a href=\"https://postgr.es/c/5333e014a\">\u00a7</a></p>", "text": "Disallow single-quoting of the language name in the CREATE/DROP LANGUAGE command (Peter Eisentraut) \u00a7", "title": "Disallow single-quoting of the language name in the CREATE/DROP LANGUAGE command", "commits": ["5333e014a"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/14.0/#id-1.11.6.30.4", "source_hash": "54221a5465143e584510eb17ae30870bfeb5e513967033e4c7a86b1d34bf5afc", "section_path": ["Compatibility"], "commit_groups": [["5333e014a"]], "identity_text": "Disallow single-quoting of the language name in the CREATE/DROP LANGUAGE command (Peter Eisentraut)", "commit_aliases": ["5333e014a"], "source_commits": ["5333e014a"], "source_entry_id": "14.0/migration/022", "db_id": "4bd4437b7dfc003ab870afc13a0e10f5", "patch_ids": ["7a776489833c51084d8e49e716540a6c"], "statement_hash": "542d4e72af450f856917d386a872b7214a1f58eaeddfaa7c92f4764aa511a9d0", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=14.0#14.0-c2cce8cb5a49fd40", "migration": true}, {"id": "14.0-26a32010c997c97c", "cves": [], "html": "<p>Remove the <a href=\"/docs/14/xfunc-sql.html#XFUNC-SQL-COMPOSITE-FUNCTIONS\" title=\"38.5.3.\u00a0SQL Functions on Composite Types\">composite types</a> that were formerly created for sequences and toast tables (Tom Lane) <a href=\"https://postgr.es/c/f3faf35f3\">\u00a7</a></p>", "text": "Remove the composite types that were formerly created for sequences and toast tables (Tom Lane) \u00a7", "title": "Remove the composite types that were formerly created for sequences and toast tables", "commits": ["f3faf35f3"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/14.0/#id-1.11.6.30.4", "source_hash": "d31c4f5c397cfbb67fec7d794ca800586b6291b35f360c048fa8e21f242a598d", "section_path": ["Compatibility"], "commit_groups": [["f3faf35f3"]], "identity_text": "Remove the composite types that were formerly created for sequences and toast tables (Tom Lane)", "commit_aliases": ["f3faf35f3"], "source_commits": ["f3faf35f3"], "source_entry_id": "14.0/migration/023", "db_id": "1c5cf332e24f8b0d7202be85e5528156", "patch_ids": ["fa3c02c60852a47771cb473168bb99b9"], "statement_hash": "fd80827a649c5be23f355899edf4f4a02e44fc0dfc25cd4db5dd3b673db86d20", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=14.0#14.0-26a32010c997c97c", "migration": true}, {"id": "14.0-b37d8ef072b7c837", "cves": [], "html": "<p>Process doubled quote marks in <a href=\"/docs/14/ecpg.html\" title=\"Chapter\u00a036.\u00a0ECPG \u2014 Embedded SQL in C\">ecpg</a> <acronym>SQL</acronym> command strings correctly (Tom Lane) <a href=\"https://postgr.es/c/3dfb1942d\">\u00a7</a> <a href=\"https://postgr.es/c/c16a1bbcf\">\u00a7</a></p>\n<p>Previously <code>'abc''def'</code> was passed to the server as <code>'abc'def'</code>, and <code>\"abc\"\"def\"</code> was passed as <code>\"abc\"def\"</code>, causing syntax errors.</p>", "text": "Process doubled quote marks in ecpg SQL command strings correctly (Tom Lane) \u00a7 \u00a7 Previously 'abc''def' was passed to the server as 'abc'def', and \"abc\"\"def\" was passed as \"abc\"def\", causing syntax errors.", "title": "Process doubled quote marks in ecpg SQL command strings correctly", "commits": ["3dfb1942d", "c16a1bbcf"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/14.0/#id-1.11.6.30.4", "source_hash": "850983ed0f84597ddc4af25317383beaa8dde9617fbee3c02a93262cc751cc42", "section_path": ["Compatibility"], "commit_groups": [["3dfb1942d"], ["c16a1bbcf"]], "identity_text": "Process doubled quote marks in ecpg SQL command strings correctly (Tom Lane) Previously 'abc''def' was passed to the server as 'abc'def', and \"abc\"\"def\" was passed as \"abc\"def\", causing syntax errors.", "commit_aliases": ["3dfb1942d", "c16a1bbcf"], "source_commits": ["3dfb1942d", "c16a1bbcf"], "source_entry_id": "14.0/migration/024", "db_id": "3093de441801a03f6de174d6ffa599dd", "patch_ids": ["61a8721dedf50c3794fb6ec5f48276eb", "fcf7f1a194e2a0a90d392dfad662df09"], "statement_hash": "f4256ddddb25295152692c602d8a584571b392889c567a2f5111c63f264a3565", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=14.0#14.0-b37d8ef072b7c837", "migration": true}, {"id": "14.0-491ee6ee37675839", "cves": [], "html": "<p>Prevent the containment operators (<code>&lt;@</code> and <code>@&gt;</code>) for <a href=\"/docs/14/intarray.html\" title=\"F.18.\u00a0intarray\">intarray</a> from using GiST indexes (Tom Lane) <a href=\"https://postgr.es/c/20e7e1fe3\">\u00a7</a></p>\n<p>Previously a full GiST index scan was required, so just avoid that and scan the heap, which is faster. Indexes created for this purpose should be removed.</p>", "text": "Prevent the containment operators (<@ and @>) for intarray from using GiST indexes (Tom Lane) \u00a7 Previously a full GiST index scan was required, so just avoid that and scan the heap, which is faster. Indexes created for this purpose should be removed.", "title": "Prevent the containment operators (<@ and @>) for intarray from using GiST indexes", "commits": ["20e7e1fe3"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/14.0/#id-1.11.6.30.4", "source_hash": "f0375f9d816b272b5718b7d7bb8a5d000c8c8a90077f4f38079790db5f6f1dc8", "section_path": ["Compatibility"], "commit_groups": [["20e7e1fe3"]], "identity_text": "Prevent the containment operators (<@ and @>) for intarray from using GiST indexes (Tom Lane) Previously a full GiST index scan was required, so just avoid that and scan the heap, which is faster. Indexes created for this purpose should be removed.", "commit_aliases": ["20e7e1fe3"], "source_commits": ["20e7e1fe3"], "source_entry_id": "14.0/migration/025", "db_id": "a40ee29af8f5cf171a58956cb6e0182e", "patch_ids": ["1e07fd758e057e181bd85b16633047c1"], "statement_hash": "f20f4d0fe7b60e25139ffffae4ecae55c63a6bfed8b52ae3763ca5c902d2a6d9", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=14.0#14.0-491ee6ee37675839", "migration": true}, {"id": "14.0-a1a034d89104d4f8", "cves": [], "html": "<p>Remove contrib program <span>pg_standby</span> (Justin Pryzby) <a href=\"https://postgr.es/c/514b411a2\">\u00a7</a></p>", "text": "Remove contrib program pg_standby (Justin Pryzby) \u00a7", "title": "Remove contrib program pg_standby", "commits": ["514b411a2"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/14.0/#id-1.11.6.30.4", "source_hash": "c32a6819ca23f51862f8e018dfb3698dd91f6d7147f40d95c821eacd19307dd8", "section_path": ["Compatibility"], "commit_groups": [["514b411a2"]], "identity_text": "Remove contrib program pg_standby (Justin Pryzby)", "commit_aliases": ["514b411a2"], "source_commits": ["514b411a2"], "source_entry_id": "14.0/migration/026", "db_id": "a9e0bf38a96f1653bee1bb128f5483ec", "patch_ids": ["1fb8ec0321ecf42c4416a98b5df735c0"], "statement_hash": "470b8cd362970c081fae4cff1eecd49138fa7799dd2e5ffd989c818b1f842ff9", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=14.0#14.0-a1a034d89104d4f8", "migration": true}, {"id": "14.0-e973627d531b7815", "cves": [], "html": "<p>Prevent <a href=\"/docs/14/tablefunc.html\" title=\"F.40.\u00a0tablefunc\">tablefunc</a>'s function <code>normal_rand()</code> from accepting negative values (Ashutosh Bapat) <a href=\"https://postgr.es/c/f73999262\">\u00a7</a></p>\n<p>Negative values produced undesirable results.</p>", "text": "Prevent tablefunc's function normal_rand() from accepting negative values (Ashutosh Bapat) \u00a7 Negative values produced undesirable results.", "title": "Prevent tablefunc's function normal_rand() from accepting negative values", "commits": ["f73999262"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/14.0/#id-1.11.6.30.4", "source_hash": "51d41bdd8143e3cedd448fcc2331bc160a3a332836bfac059e0de6c2a6d96b30", "section_path": ["Compatibility"], "commit_groups": [["f73999262"]], "identity_text": "Prevent tablefunc 's function normal_rand() from accepting negative values (Ashutosh Bapat) Negative values produced undesirable results.", "commit_aliases": ["f73999262"], "source_commits": ["f73999262"], "source_entry_id": "14.0/migration/027", "db_id": "f49484fe3b62226f06ef45d02aa28b08", "patch_ids": ["419656bd6830d5730877c9efa0fcc9ef"], "statement_hash": "fd298129535aafb2a0f2c419da07ab79ce1896430768e68e9cd72ea1ac367a11", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=14.0#14.0-e973627d531b7815", "migration": true}, {"id": "14.0-dab54c9e7048da7e", "cves": [], "html": "<p>Add predefined roles <a href=\"/docs/14/predefined-roles.html\" title=\"22.5.\u00a0Predefined Roles\"><code>pg_read_all_data</code></a> and <code>pg_write_all_data</code> (Stephen Frost) <a href=\"https://postgr.es/c/6c3ffd697\">\u00a7</a></p>\n<p>These non-login roles can be used to give read or write permission to all tables, views, and sequences.</p>", "text": "Add predefined roles pg_read_all_data and pg_write_all_data (Stephen Frost) \u00a7 These non-login roles can be used to give read or write permission to all tables, views, and sequences.", "title": "Add predefined roles pg_read_all_data and pg_write_all_data", "commits": ["6c3ffd697"], "section": "Server", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3", "source_hash": "3edee8242e0e0472a73fcc7326e31435772bf18008ca8e173cfd41aa732ffbf0", "section_path": ["Server"], "commit_groups": [["6c3ffd697"]], "identity_text": "Add predefined roles pg_read_all_data and pg_write_all_data (Stephen Frost) These non-login roles can be used to give read or write permission to all tables, views, and sequences.", "commit_aliases": ["6c3ffd697"], "source_commits": ["6c3ffd697"], "source_entry_id": "14.0/changes/001", "db_id": "7c964ca68cdf3bf8145c759329acccc2", "patch_ids": ["a7b1c5fabbd5c8f3b4273c849636d7de"], "statement_hash": "b4047ab90f3f257b52bb99a1862322775632426b74dee2281aaee02a55da453e", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-dab54c9e7048da7e", "migration": false}, {"id": "14.0-2e3bf31b7a03e4be", "cves": [], "html": "<p>Add predefined role <a href=\"/docs/14/predefined-roles.html\" title=\"22.5.\u00a0Predefined Roles\"><code>pg_database_owner</code></a> that contains only the current database's owner (Noah Misch) <a href=\"https://postgr.es/c/a14a0118a\">\u00a7</a></p>\n<p>This is especially useful in template databases.</p>", "text": "Add predefined role pg_database_owner that contains only the current database's owner (Noah Misch) \u00a7 This is especially useful in template databases.", "title": "Add predefined role pg_database_owner that contains only the current database's owner", "commits": ["a14a0118a"], "section": "Server", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3", "source_hash": "b7f5e672258676967d32a5aa3cada04d63bbf9d501c9500185049654e366768b", "section_path": ["Server"], "commit_groups": [["a14a0118a"]], "identity_text": "Add predefined role pg_database_owner that contains only the current database's owner (Noah Misch) This is especially useful in template databases.", "commit_aliases": ["a14a0118a"], "source_commits": ["a14a0118a"], "source_entry_id": "14.0/changes/002", "db_id": "39f7eb95a3c5fa369367c8d9e3cebff2", "patch_ids": ["4dea78925fdaae2198cc9749bad9eab5"], "statement_hash": "f4b6d6a2feb82f46a79d5a5969e3fb4782683813d72d3ec13c55fda53c13e040", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-2e3bf31b7a03e4be", "migration": false}, {"id": "14.0-a93fc5c8565ace4a", "cves": [], "html": "<p>Remove temporary files after backend crashes (Euler Taveira) <a href=\"https://postgr.es/c/cd91de0d1\">\u00a7</a></p>\n<p>Previously, such files were retained for debugging purposes. If necessary, deletion can be disabled with the new server parameter <a href=\"/docs/14/runtime-config-developer.html#GUC-REMOVE-TEMP-FILES-AFTER-CRASH\">remove_temp_files_after_crash</a>.</p>", "text": "Remove temporary files after backend crashes (Euler Taveira) \u00a7 Previously, such files were retained for debugging purposes. If necessary, deletion can be disabled with the new server parameter remove_temp_files_after_crash.", "title": "Remove temporary files after backend crashes", "commits": ["cd91de0d1"], "section": "Server", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3", "source_hash": "8a07f6ae80b6a91c982965e7fb06a8ef388441a72c1e82fb5f052af8b0ce0d33", "section_path": ["Server"], "commit_groups": [["cd91de0d1"]], "identity_text": "Remove temporary files after backend crashes (Euler Taveira) Previously, such files were retained for debugging purposes. If necessary, deletion can be disabled with the new server parameter guc-remove-temp-files-after-crash .", "commit_aliases": ["cd91de0d1"], "source_commits": ["cd91de0d1"], "source_entry_id": "14.0/changes/003", "db_id": "9641f1fa742188e74a0ce21ffb889f00", "patch_ids": ["3eda1f200d7115024d30e70cc91d03de"], "statement_hash": "7b84731fbe851c837f867ed41279fabc8f765c04f2d6aebf30b915b0cea99aad", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-a93fc5c8565ace4a", "migration": false}, {"id": "14.0-4e90554915eb0755", "cves": [], "html": "<p>Allow long-running queries to be canceled if the client disconnects (Sergey Cherkashin, Thomas Munro) <a href=\"https://postgr.es/c/c30f54ad7\">\u00a7</a></p>\n<p>The server parameter <a href=\"/docs/14/runtime-config-connection.html#GUC-CLIENT-CONNECTION-CHECK-INTERVAL\">client_connection_check_interval</a> allows control over whether loss of connection is checked for intra-query. (This is supported on Linux and a few other operating systems.)</p>", "text": "Allow long-running queries to be canceled if the client disconnects (Sergey Cherkashin, Thomas Munro) \u00a7 The server parameter client_connection_check_interval allows control over whether loss of connection is checked for intra-query. (This is supported on Linux and a few other operating systems.)", "title": "Allow long-running queries to be canceled if the client disconnects", "commits": ["c30f54ad7"], "section": "Server", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3", "source_hash": "27e0b2b4f1f67548713108323182c1875fed7b4e597b4b8b2906fb0fe4865b64", "section_path": ["Server"], "commit_groups": [["c30f54ad7"]], "identity_text": "Allow long-running queries to be canceled if the client disconnects (Sergey Cherkashin, Thomas Munro) The server parameter guc-client-connection-check-interval allows control over whether loss of connection is checked for intra-query. (This is supported on Linux and a few other operating systems.)", "commit_aliases": ["c30f54ad7"], "source_commits": ["c30f54ad7"], "source_entry_id": "14.0/changes/004", "db_id": "a41d31862a17639e06183064e541c785", "patch_ids": ["6b1278fd036012f59f5ac99ded1c5420"], "statement_hash": "d276847c535cfe09f0d43acb4190ffc941f831d42a07a5d4d79aaef80b966238", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-4e90554915eb0755", "migration": false}, {"id": "14.0-ef095454849017dd", "cves": [], "html": "<p>Add an optional timeout parameter to <a href=\"/docs/14/functions-admin.html#FUNCTIONS-ADMIN-SIGNAL\" title=\"9.27.2.\u00a0Server Signaling Functions\"><code>pg_terminate_backend()</code></a> (Magnus Hagander) <a href=\"https://postgr.es/c/aaf043257\">\u00a7</a></p>", "text": "Add an optional timeout parameter to pg_terminate_backend() (Magnus Hagander) \u00a7", "title": "Add an optional timeout parameter to pg_terminate_backend()", "commits": ["aaf043257"], "section": "Server", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3", "source_hash": "c5833bcb75dfacf2aa0bc64be26ea75b4ec29b7e2571b3ac499ca0094f970d3a", "section_path": ["Server"], "commit_groups": [["aaf043257"]], "identity_text": "Add an optional timeout parameter to pg_terminate_backend() (Magnus Hagander)", "commit_aliases": ["aaf043257"], "source_commits": ["aaf043257"], "source_entry_id": "14.0/changes/005", "db_id": "cfdff82e4698491408ffac16fc954126", "patch_ids": ["302820860fbe21c4869d2d58bd900dd2"], "statement_hash": "da3674ace1551c12e4f5bd5a4545beb0e3603595fb89b2280c3adbce75e1903b", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-ef095454849017dd", "migration": false}, {"id": "14.0-995144cf35eed38f", "cves": [], "html": "<p>Allow wide tuples to be always added to almost-empty heap pages (John Naylor, Floris van Nee) <a href=\"https://postgr.es/c/0ff8bbdee\">\u00a7</a></p>\n<p>Previously tuples whose insertion would have exceeded the page's <a href=\"/docs/14/sql-createtable.html\" title=\"CREATE TABLE\">fill factor</a> were instead added to new pages.</p>", "text": "Allow wide tuples to be always added to almost-empty heap pages (John Naylor, Floris van Nee) \u00a7 Previously tuples whose insertion would have exceeded the page's fill factor were instead added to new pages.", "title": "Allow wide tuples to be always added to almost-empty heap pages", "commits": ["0ff8bbdee"], "section": "Server", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3", "source_hash": "ed40aa9909ecbc0c55353c192b947ecc8b6886ffdf3d3046ea233d940450647e", "section_path": ["Server"], "commit_groups": [["0ff8bbdee"]], "identity_text": "Allow wide tuples to be always added to almost-empty heap pages (John Naylor, Floris van Nee) Previously tuples whose insertion would have exceeded the page's fill factor were instead added to new pages.", "commit_aliases": ["0ff8bbdee"], "source_commits": ["0ff8bbdee"], "source_entry_id": "14.0/changes/006", "db_id": "2b5392fe4c126bdbde4d4aa7bde41801", "patch_ids": ["f55a5fbf49b0f05bf7fa427e115618b1"], "statement_hash": "8a4d001b69d3172c9b75eaa0f1bf4baddb6283eb06b200dfd921df3c958e4e0e", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-995144cf35eed38f", "migration": false}, {"id": "14.0-f1624c24d8142aee", "cves": [], "html": "<p>Add Server Name Indication (<acronym>SNI</acronym>) in <acronym>SSL</acronym> connection packets (Peter Eisentraut) <a href=\"https://postgr.es/c/5c55dc8b4\">\u00a7</a></p>\n<p>This can be disabled by turning off client connection option <a href=\"/docs/14/libpq-connect.html#LIBPQ-PARAMKEYWORDS\" title=\"34.1.2.\u00a0Parameter Key Words\"><code>sslsni</code></a>.</p>", "text": "Add Server Name Indication (SNI) in SSL connection packets (Peter Eisentraut) \u00a7 This can be disabled by turning off client connection option sslsni.", "title": "Add Server Name Indication (SNI) in SSL connection packets", "commits": ["5c55dc8b4"], "section": "Server", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3", "source_hash": "99336d6805a14fdf96ee9d18c1a8ede727f53023a11f8ea5febe7a81ca5d39ea", "section_path": ["Server"], "commit_groups": [["5c55dc8b4"]], "identity_text": "Add Server Name Indication (SNI) in SSL connection packets (Peter Eisentraut) This can be disabled by turning off client connection option sslsni.", "commit_aliases": ["5c55dc8b4"], "source_commits": ["5c55dc8b4"], "source_entry_id": "14.0/changes/007", "db_id": "7ce49034b850c76474237ca8314a1007", "patch_ids": ["77e8a1144f3d08d6d8f0c5a328cede7b"], "statement_hash": "40e295532f90c1be713d5507715f88e7c514e82ac57e222e05a6e8979783d70d", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-f1624c24d8142aee", "migration": false}, {"id": "14.0-d04ab2910a576520", "cves": [], "html": "<p>Allow vacuum to skip index vacuuming when the number of removable index entries is insignificant (Masahiko Sawada, Peter Geoghegan) <a href=\"https://postgr.es/c/5100010ee\">\u00a7</a> <a href=\"https://postgr.es/c/3499df0de\">\u00a7</a></p>\n<p>The vacuum parameter <a href=\"/docs/14/sql-vacuum.html\" title=\"VACUUM\"><code>INDEX_CLEANUP</code></a> has a new default of <code>auto</code> that enables this optimization.</p>", "text": "Allow vacuum to skip index vacuuming when the number of removable index entries is insignificant (Masahiko Sawada, Peter Geoghegan) \u00a7 \u00a7 The vacuum parameter INDEX_CLEANUP has a new default of auto that enables this optimization.", "title": "Allow vacuum to skip index vacuuming when the number of removable index entries is insignificant", "commits": ["3499df0de", "5100010ee"], "section": "Server / Vacuuming", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.3", "source_hash": "6a2a99d04a1637b40fb9e32564a37855ef4a9cb62cf794df190902ef5ae0228d", "section_path": ["Server", "Vacuuming"], "commit_groups": [["3499df0de"], ["5100010ee"]], "identity_text": "Allow vacuum to skip index vacuuming when the number of removable index entries is insignificant (Masahiko Sawada, Peter Geoghegan) The vacuum parameter INDEX_CLEANUP has a new default of auto that enables this optimization.", "commit_aliases": ["3499df0de", "5100010ee"], "source_commits": ["3499df0de", "5100010ee"], "source_entry_id": "14.0/changes/008", "db_id": "a21ae13cb310d2a0737b52cd09c05d39", "patch_ids": ["0db553698bcff7d44b18dfb0a4d1db41", "d36ed693709beb0d367a2de841423210"], "statement_hash": "e32425a2058b156981a48d8bc6b2b595f57389cb01f71f710dddeba3f49175c6", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-d04ab2910a576520", "migration": false}, {"id": "14.0-3c320be7ff0acf5f", "cves": [], "html": "<p>Allow vacuum to more eagerly add deleted btree pages to the free space map (Peter Geoghegan) <a href=\"https://postgr.es/c/9dd963ae2\">\u00a7</a></p>\n<p>Previously vacuum could only add pages to the free space map that were marked as deleted by previous vacuums.</p>", "text": "Allow vacuum to more eagerly add deleted btree pages to the free space map (Peter Geoghegan) \u00a7 Previously vacuum could only add pages to the free space map that were marked as deleted by previous vacuums.", "title": "Allow vacuum to more eagerly add deleted btree pages to the free space map", "commits": ["9dd963ae2"], "section": "Server / Vacuuming", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.3", "source_hash": "1a5df65590ce77bfba6416afa53e5caeda96f198b37a90e694b59eea495a867a", "section_path": ["Server", "Vacuuming"], "commit_groups": [["9dd963ae2"]], "identity_text": "Allow vacuum to more eagerly add deleted btree pages to the free space map (Peter Geoghegan) Previously vacuum could only add pages to the free space map that were marked as deleted by previous vacuums.", "commit_aliases": ["9dd963ae2"], "source_commits": ["9dd963ae2"], "source_entry_id": "14.0/changes/009", "db_id": "dfe598f48cb6459cfc00d4877a4e027a", "patch_ids": ["7ea5da6b25b05cc12a9b7155150851f1"], "statement_hash": "5628575f5d106cd69153b5b5a7a9241d3ce0cf3aa8b3af1cd918f1e02af03c80", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-3c320be7ff0acf5f", "migration": false}, {"id": "14.0-2517763ed8e07a7e", "cves": [], "html": "<p>Allow vacuum to reclaim space used by unused trailing heap line pointers (Matthias van de Meent, Peter Geoghegan) <a href=\"https://postgr.es/c/3c3b8a4b2\">\u00a7</a></p>", "text": "Allow vacuum to reclaim space used by unused trailing heap line pointers (Matthias van de Meent, Peter Geoghegan) \u00a7", "title": "Allow vacuum to reclaim space used by unused trailing heap line pointers", "commits": ["3c3b8a4b2"], "section": "Server / Vacuuming", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.3", "source_hash": "a8ecddf416b8d86d6355383cabe7692f05143fb855c8993970f0ad8b39993516", "section_path": ["Server", "Vacuuming"], "commit_groups": [["3c3b8a4b2"]], "identity_text": "Allow vacuum to reclaim space used by unused trailing heap line pointers (Matthias van de Meent, Peter Geoghegan)", "commit_aliases": ["3c3b8a4b2"], "source_commits": ["3c3b8a4b2"], "source_entry_id": "14.0/changes/010", "db_id": "67b224cf45acd34835fc61ac92183819", "patch_ids": ["e465d15f7a45be97ecf084841358ff3e"], "statement_hash": "c1780be2eac7b38ea2387976313dca8cec4bb7fd8bb4993b1b11843b4af5af20", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-2517763ed8e07a7e", "migration": false}, {"id": "14.0-e85885ab232f73ee", "cves": [], "html": "<p>Allow vacuum to be more aggressive in removing dead rows during minimal-locking index operations (\u00c1lvaro Herrera) <a href=\"https://postgr.es/c/c98763bf5\">\u00a7</a> <a href=\"https://postgr.es/c/f9900df5f\">\u00a7</a> <a href=\"https://postgr.es/c/d9d076222\">\u00a7</a></p>\n<p>Specifically, <code>CREATE INDEX CONCURRENTLY</code> and <code>REINDEX CONCURRENTLY</code> no longer limit the dead row removal of other relations.</p>", "text": "Allow vacuum to be more aggressive in removing dead rows during minimal-locking index operations (\u00c1lvaro Herrera) \u00a7 \u00a7 \u00a7 Specifically, CREATE INDEX CONCURRENTLY and REINDEX CONCURRENTLY no longer limit the dead row removal of other relations.", "title": "Allow vacuum to be more aggressive in removing dead rows during minimal-locking index operations", "commits": ["c98763bf5", "d9d076222", "f9900df5f"], "section": "Server / Vacuuming", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.3", "source_hash": "4aadeb747e050652577bd0cc70c532539bd75d0b560058ed95e987acd843e335", "section_path": ["Server", "Vacuuming"], "commit_groups": [["c98763bf5"], ["d9d076222"], ["f9900df5f"]], "identity_text": "Allow vacuum to be more aggressive in removing dead rows during minimal-locking index operations (\u00c1lvaro Herrera) Specifically, CREATE INDEX CONCURRENTLY and REINDEX CONCURRENTLY no longer limit the dead row removal of other relations.", "commit_aliases": ["c98763bf5", "d9d076222", "f9900df5f"], "source_commits": ["c98763bf5", "d9d076222", "f9900df5f"], "source_entry_id": "14.0/changes/011", "db_id": "0c9d974913b05a8737e6a1f04752bfdc", "patch_ids": ["372a3670e2e3e461b4849f3a7ecea103", "5b064cc4a625651d6f0dba84325817a5", "6bd8462ec5bafe5f31e1328915ed8acb"], "statement_hash": "54e4e48618b5d1357955b5f68e3e091b1dde8dbf55d5ed7798fb8ed8a288256b", "relations": [{"rule": 2, "type": "related", "target": "e2349e6d9b73ae536eb86bd9f5cbbac4", "evidence": {"same_day": true, "patch_ids": ["372a3670e2e3e461b4849f3a7ecea103", "5b064cc4a625651d6f0dba84325817a5", "6bd8462ec5bafe5f31e1328915ed8acb"], "ambiguous_patch_ids": ["372a3670e2e3e461b4849f3a7ecea103", "5b064cc4a625651d6f0dba84325817a5", "6bd8462ec5bafe5f31e1328915ed8acb"]}}], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-e85885ab232f73ee", "migration": false}, {"id": "14.0-673aac54b62c163a", "cves": [], "html": "<p>Speed up vacuuming of databases with many relations (Tatsuhito Kasahara) <a href=\"https://postgr.es/c/e2ac3fed3\">\u00a7</a></p>", "text": "Speed up vacuuming of databases with many relations (Tatsuhito Kasahara) \u00a7", "title": "Speed up vacuuming of databases with many relations", "commits": ["e2ac3fed3"], "section": "Server / Vacuuming", "category": "performance", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.3", "source_hash": "6de1b38e56c93551a86bbb1f8c30b181aace28c08f85b7a8e1b6c9b4cbf92ac2", "section_path": ["Server", "Vacuuming"], "commit_groups": [["e2ac3fed3"]], "identity_text": "Speed up vacuuming of databases with many relations (Tatsuhito Kasahara)", "commit_aliases": ["e2ac3fed3"], "source_commits": ["e2ac3fed3"], "source_entry_id": "14.0/changes/012", "db_id": "7226f64f239faedb831a40b26ed1b83b", "patch_ids": ["db27b08fe82d4866a88debc8fe55bcfe"], "statement_hash": "a97c5b84df3e61784c109c3e486bdd644582a78b7409685bee83e549a311d862", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=14.0#14.0-673aac54b62c163a", "migration": false}, {"id": "14.0-d65767504fdae59c", "cves": [], "html": "<p>Reduce the default value of <a href=\"/docs/14/runtime-config-resource.html#GUC-VACUUM-COST-PAGE-MISS\">vacuum_cost_page_miss</a> to better reflect current hardware capabilities (Peter Geoghegan) <a href=\"https://postgr.es/c/e19594c5c\">\u00a7</a></p>", "text": "Reduce the default value of vacuum_cost_page_miss to better reflect current hardware capabilities (Peter Geoghegan) \u00a7", "title": "Reduce the default value of vacuum_cost_page_miss to better reflect current hardware capabilities", "commits": ["e19594c5c"], "section": "Server / Vacuuming", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.3", "source_hash": "15a761ea69ab85b91764cd89b03f14b7bbb3fe6be55fb18b1392671a4b300508", "section_path": ["Server", "Vacuuming"], "commit_groups": [["e19594c5c"]], "identity_text": "Reduce the default value of guc-vacuum-cost-page-miss to better reflect current hardware capabilities (Peter Geoghegan)", "commit_aliases": ["e19594c5c"], "source_commits": ["e19594c5c"], "source_entry_id": "14.0/changes/013", "db_id": "89b7a60eade6d24829bbc0d9efb70194", "patch_ids": ["75ef2ee15a80ec6fce3ff14555cfb9fa"], "statement_hash": "f8dc2f0ce5110082402165337d8c1eeffa71d74aa4eabd4e17399f74f382bbd7", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-d65767504fdae59c", "migration": false}, {"id": "14.0-575d84a6c25ca8ed", "cves": [], "html": "<p>Add ability to skip vacuuming of <acronym>TOAST</acronym> tables (Nathan Bossart) <a href=\"https://postgr.es/c/7cb3048f3\">\u00a7</a></p>\n<p><a href=\"/docs/14/sql-vacuum.html\" title=\"VACUUM\"><code>VACUUM</code></a> now has a <code>PROCESS_TOAST</code> option which can be set to false to disable <acronym>TOAST</acronym> processing, and <a href=\"/docs/14/app-vacuumdb.html\" title=\"vacuumdb\"><span>vacuumdb</span></a> has a <code>--no-process-toast</code> option.</p>", "text": "Add ability to skip vacuuming of TOAST tables (Nathan Bossart) \u00a7 VACUUM now has a PROCESS_TOAST option which can be set to false to disable TOAST processing, and vacuumdb has a --no-process-toast option.", "title": "Add ability to skip vacuuming of TOAST tables", "commits": ["7cb3048f3"], "section": "Server / Vacuuming", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.3", "source_hash": "a147db5bf23f91f4b6735a5cf034626100b5c216dc0494260175581649020749", "section_path": ["Server", "Vacuuming"], "commit_groups": [["7cb3048f3"]], "identity_text": "Add ability to skip vacuuming of TOAST tables (Nathan Bossart) VACUUM now has a PROCESS_TOAST option which can be set to false to disable TOAST processing, and vacuumdb has a --no-process-toast option.", "commit_aliases": ["7cb3048f3"], "source_commits": ["7cb3048f3"], "source_entry_id": "14.0/changes/014", "db_id": "265fc459188e9b047bcec4c44650c0db", "patch_ids": ["ac8c91d21f491c247b60191c7c1271a1"], "statement_hash": "e1b012c3c98690dee24c5092e02409228c7b482779aebd4ee0908b1f1e86150b", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-575d84a6c25ca8ed", "migration": false}, {"id": "14.0-c2d8e322b90bd666", "cves": [], "html": "<p>Have <a href=\"/docs/14/sql-copy.html\" title=\"COPY\"><code>COPY FREEZE</code></a> appropriately update page visibility bits (Anastasia Lubennikova, Pavan Deolasee, Jeff Janes) <a href=\"https://postgr.es/c/7db0cd214\">\u00a7</a></p>", "text": "Have COPY FREEZE appropriately update page visibility bits (Anastasia Lubennikova, Pavan Deolasee, Jeff Janes) \u00a7", "title": "Have COPY FREEZE appropriately update page visibility bits", "commits": ["7db0cd214"], "section": "Server / Vacuuming", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.3", "source_hash": "37d09e9663156186775f2478ea65d6562f5053a00835020e0e428d740f78acaa", "section_path": ["Server", "Vacuuming"], "commit_groups": [["7db0cd214"]], "identity_text": "Have COPY FREEZE appropriately update page visibility bits (Anastasia Lubennikova, Pavan Deolasee, Jeff Janes)", "commit_aliases": ["7db0cd214"], "source_commits": ["7db0cd214"], "source_entry_id": "14.0/changes/015", "db_id": "c20c62a17959343fe73dd74e2ce5f07d", "patch_ids": ["c79848c7fa5c541f2658ead62d453b9d"], "statement_hash": "90f7582c841128fce0a6e2b31b08bb1e2281d7559c947b5d471ae332fa1b850e", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-c2d8e322b90bd666", "migration": false}, {"id": "14.0-9a22e6048696f585", "cves": [], "html": "<p>Cause vacuum operations to be more aggressive if the table is near xid or multixact wraparound (Masahiko Sawada, Peter Geoghegan) <a href=\"https://postgr.es/c/1e55e7d17\">\u00a7</a></p>\n<p>This is controlled by <a href=\"/docs/14/runtime-config-client.html#GUC-VACUUM-FAILSAFE-AGE\">vacuum_failsafe_age</a> and <a href=\"/docs/14/runtime-config-client.html#GUC-VACUUM-MULTIXACT-FAILSAFE-AGE\">vacuum_multixact_failsafe_age</a>.</p>", "text": "Cause vacuum operations to be more aggressive if the table is near xid or multixact wraparound (Masahiko Sawada, Peter Geoghegan) \u00a7 This is controlled by vacuum_failsafe_age and vacuum_multixact_failsafe_age.", "title": "Cause vacuum operations to be more aggressive if the table is near xid or multixact wraparound", "commits": ["1e55e7d17"], "section": "Server / Vacuuming", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.3", "source_hash": "99e324328886adc51ea298a89ea69445029d54804773accc70b5c12d14dd893d", "section_path": ["Server", "Vacuuming"], "commit_groups": [["1e55e7d17"]], "identity_text": "Cause vacuum operations to be more aggressive if the table is near xid or multixact wraparound (Masahiko Sawada, Peter Geoghegan) This is controlled by guc-vacuum-failsafe-age and guc-vacuum-multixact-failsafe-age .", "commit_aliases": ["1e55e7d17"], "source_commits": ["1e55e7d17"], "source_entry_id": "14.0/changes/016", "db_id": "38821d36552837fee8be43e9c2b5109e", "patch_ids": ["a691f25f6b748dcd5dbb4f479fa2a3ee"], "statement_hash": "b3e78a4c45f0865431b66173d087ebe24607970ba92695dc9a00120f9553bc87", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-9a22e6048696f585", "migration": false}, {"id": "14.0-8b6e63ed99438e71", "cves": [], "html": "<p>Increase warning time and hard limit before transaction id and multi-transaction wraparound (Noah Misch) <a href=\"https://postgr.es/c/cd5e82256\">\u00a7</a></p>\n<p>This should reduce the possibility of failures that occur without having issued warnings about wraparound.</p>", "text": "Increase warning time and hard limit before transaction id and multi-transaction wraparound (Noah Misch) \u00a7 This should reduce the possibility of failures that occur without having issued warnings about wraparound.", "title": "Increase warning time and hard limit before transaction id and multi-transaction wraparound", "commits": ["cd5e82256"], "section": "Server / Vacuuming", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.3", "source_hash": "17ec33da000d0b5070f735a555514364e59b2adb3695af1c3da5897a7601ce38", "section_path": ["Server", "Vacuuming"], "commit_groups": [["cd5e82256"]], "identity_text": "Increase warning time and hard limit before transaction id and multi-transaction wraparound (Noah Misch) This should reduce the possibility of failures that occur without having issued warnings about wraparound.", "commit_aliases": ["cd5e82256"], "source_commits": ["cd5e82256"], "source_entry_id": "14.0/changes/017", "db_id": "36b7169ab381fedb50ef7455a70c04d5", "patch_ids": ["d4aa577c6ac90cf8b3b00ab8424f9884"], "statement_hash": "5bf76e0938bf46ab86ae704850a242e10f1bb66b1831d156660701ecccaace9f", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-8b6e63ed99438e71", "migration": false}, {"id": "14.0-d82eaf7df6779cbd", "cves": [], "html": "<p>Add per-index information to <a href=\"/docs/14/runtime-config-logging.html#GUC-LOG-AUTOVACUUM-MIN-DURATION\">autovacuum logging output</a> (Masahiko Sawada) <a href=\"https://postgr.es/c/5aed6a1fc\">\u00a7</a></p>", "text": "Add per-index information to autovacuum logging output (Masahiko Sawada) \u00a7", "title": "Add per-index information to autovacuum logging output", "commits": ["5aed6a1fc"], "section": "Server / Vacuuming", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.3", "source_hash": "757f23f69196f316939bdd8edc53742e778b037b66714a1eb3ad2398707c4aaf", "section_path": ["Server", "Vacuuming"], "commit_groups": [["5aed6a1fc"]], "identity_text": "Add per-index information to autovacuum logging output (Masahiko Sawada)", "commit_aliases": ["5aed6a1fc"], "source_commits": ["5aed6a1fc"], "source_entry_id": "14.0/changes/018", "db_id": "4147b6ee8c43efa5d7b0e3a68e8175aa", "patch_ids": ["297356640b1e55ce0b956460c38a88d3"], "statement_hash": "db11a7bb7a4fe49f720d12554845a41884b642ffe8804c8cefe12706edc59c71", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-d82eaf7df6779cbd", "migration": false}, {"id": "14.0-7b083c3cabea8a78", "cves": [], "html": "<p>Improve the performance of updates and deletes on partitioned tables with many partitions (Amit Langote, Tom Lane) <a href=\"https://postgr.es/c/86dc90056\">\u00a7</a> <a href=\"https://postgr.es/c/a1115fa07\">\u00a7</a> <a href=\"https://postgr.es/c/c5b7ba4e6\">\u00a7</a></p>\n<p>This change greatly reduces the planner's overhead for such cases, and also allows updates/deletes on partitioned tables to use execution-time partition pruning.</p>", "text": "Improve the performance of updates and deletes on partitioned tables with many partitions (Amit Langote, Tom Lane) \u00a7 \u00a7 \u00a7 This change greatly reduces the planner's overhead for such cases, and also allows updates/deletes on partitioned tables to use execution-time partition pruning.", "title": "Improve the performance of updates and deletes on partitioned tables with many partitions", "commits": ["86dc90056", "a1115fa07", "c5b7ba4e6"], "section": "Server / Partitioning", "category": "performance", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.4", "source_hash": "bb349cd2d9fa02d5fc76114c907fe8698efd8687b02bceaa85cf104da9b0e906", "section_path": ["Server", "Partitioning"], "commit_groups": [["86dc90056"], ["a1115fa07"], ["c5b7ba4e6"]], "identity_text": "Improve the performance of updates and deletes on partitioned tables with many partitions (Amit Langote, Tom Lane) This change greatly reduces the planner's overhead for such cases, and also allows updates/deletes on partitioned tables to use execution-time partition pruning.", "commit_aliases": ["86dc90056", "a1115fa07", "c5b7ba4e6"], "source_commits": ["86dc90056", "a1115fa07", "c5b7ba4e6"], "source_entry_id": "14.0/changes/019", "db_id": "87280cbc3402955bf6dc1ba16e6d429e", "patch_ids": ["7002902cc06c0c6789ed50713737211d", "92b343055ff588bca5fd90e8a5a6d712", "c474888064fe0cebce46908133ab78d2"], "statement_hash": "da8fdc10661856e3452ea117e058207e22185f1017ee9b2d38ab7552b07833f9", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=14.0#14.0-7b083c3cabea8a78", "migration": false}, {"id": "14.0-4c8e021796bd9651", "cves": [], "html": "<p>Allow partitions to be <a href=\"/docs/14/sql-altertable.html\" title=\"ALTER TABLE\">detached</a> in a non-blocking manner (\u00c1lvaro Herrera) <a href=\"https://postgr.es/c/71f4c8c6f\">\u00a7</a></p>\n<p>The syntax is <code>ALTER TABLE ... DETACH PARTITION ... CONCURRENTLY</code>, and <code>FINALIZE</code>.</p>", "text": "Allow partitions to be detached in a non-blocking manner (\u00c1lvaro Herrera) \u00a7 The syntax is ALTER TABLE ... DETACH PARTITION ... CONCURRENTLY, and FINALIZE.", "title": "Allow partitions to be detached in a non-blocking manner", "commits": ["71f4c8c6f"], "section": "Server / Partitioning", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.4", "source_hash": "2fea5c0c27db9199dcca7428cba7469d318e650f889406e4194ca8165448a41a", "section_path": ["Server", "Partitioning"], "commit_groups": [["71f4c8c6f"]], "identity_text": "Allow partitions to be detached in a non-blocking manner (\u00c1lvaro Herrera) The syntax is ALTER TABLE ... DETACH PARTITION ... CONCURRENTLY, and FINALIZE.", "commit_aliases": ["71f4c8c6f"], "source_commits": ["71f4c8c6f"], "source_entry_id": "14.0/changes/020", "db_id": "6d0954d9e3f3988e898a11182e5223f0", "patch_ids": ["e08e854ba49973e582e5c2f26763d6f2"], "statement_hash": "5edcece495690da08e850f56d68fd9946d7d2bab39f6ad4422ed58d37f97518c", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-4c8e021796bd9651", "migration": false}, {"id": "14.0-c704b6b3281a56f5", "cves": [], "html": "<p>Ignore <code>COLLATE</code> clauses in partition boundary values (Tom Lane) <a href=\"https://postgr.es/c/2dfa3fea8\">\u00a7</a></p>\n<p>Previously any such clause had to match the collation of the partition key; but it's more consistent to consider that it's automatically coerced to the collation of the partition key.</p>", "text": "Ignore COLLATE clauses in partition boundary values (Tom Lane) \u00a7 Previously any such clause had to match the collation of the partition key; but it's more consistent to consider that it's automatically coerced to the collation of the partition key.", "title": "Ignore COLLATE clauses in partition boundary values", "commits": ["2dfa3fea8"], "section": "Server / Partitioning", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.4", "source_hash": "509524969f1406938784dad4aae16e7c092fd7d7ca243218705d5aabcf9d7f30", "section_path": ["Server", "Partitioning"], "commit_groups": [["2dfa3fea8"]], "identity_text": "Ignore COLLATE clauses in partition boundary values (Tom Lane) Previously any such clause had to match the collation of the partition key; but it's more consistent to consider that it's automatically coerced to the collation of the partition key.", "commit_aliases": ["2dfa3fea8"], "source_commits": ["2dfa3fea8"], "source_entry_id": "14.0/changes/021", "db_id": "3ec86b7c53023b80ecc13bcfc36b790c", "patch_ids": ["27dd089c1a6b61f0194799531999873d"], "statement_hash": "3c5b8490b2a1b2bcccf2736616edf744afbd239f97bbc82ccf2f5272b675cac0", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-c704b6b3281a56f5", "migration": false}, {"id": "14.0-b86bd4388eb831b6", "cves": [], "html": "<p>Allow btree index additions to <a href=\"/docs/14/btree-implementation.html#BTREE-DELETION\" title=\"64.4.2.\u00a0Bottom-up Index Deletion\">remove expired index entries</a> to prevent page splits (Peter Geoghegan) <a href=\"https://postgr.es/c/9dc718bdf\">\u00a7</a> <a href=\"https://postgr.es/c/d168b6668\">\u00a7</a></p>\n<p>This is particularly helpful for reducing index bloat on tables whose indexed columns are frequently updated.</p>", "text": "Allow btree index additions to remove expired index entries to prevent page splits (Peter Geoghegan) \u00a7 \u00a7 This is particularly helpful for reducing index bloat on tables whose indexed columns are frequently updated.", "title": "Allow btree index additions to remove expired index entries to prevent page splits", "commits": ["9dc718bdf", "d168b6668"], "section": "Server / Indexes", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.5", "source_hash": "37c435ebb98c0f7b4d8e8ba08edf9047d67c671cd278c37e9a253edfb3dcd032", "section_path": ["Server", "Indexes"], "commit_groups": [["9dc718bdf"], ["d168b6668"]], "identity_text": "Allow btree index additions to remove expired index entries to prevent page splits (Peter Geoghegan) This is particularly helpful for reducing index bloat on tables whose indexed columns are frequently updated.", "commit_aliases": ["9dc718bdf", "d168b6668"], "source_commits": ["9dc718bdf", "d168b6668"], "source_entry_id": "14.0/changes/022", "db_id": "6c42f4ac324b00fc026c401ec482c147", "patch_ids": ["0b97c9d0405a5f264efeac6d358fa115", "925d4888b6fd7820d89ea2a58493eb7e"], "statement_hash": "a36f8a5992dbee50672461d73d3ebbee21f84d127870c62eb384c39da115dc35", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-b86bd4388eb831b6", "migration": false}, {"id": "14.0-36120da75947f5c7", "cves": [], "html": "<p>Allow <a href=\"/docs/14/brin.html\" title=\"Chapter\u00a068.\u00a0BRIN Indexes\"><acronym>BRIN</acronym></a> indexes to record multiple min/max values per range (Tomas Vondra) <a href=\"https://postgr.es/c/ab596105b\">\u00a7</a></p>\n<p>This is useful if there are groups of values in each page range.</p>", "text": "Allow BRIN indexes to record multiple min/max values per range (Tomas Vondra) \u00a7 This is useful if there are groups of values in each page range.", "title": "Allow BRIN indexes to record multiple min/max values per range", "commits": ["ab596105b"], "section": "Server / Indexes", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.5", "source_hash": "3d5e2e5e36f0f2470ff325a360419b897da1a5eb419eaa75fd634a87e2a73725", "section_path": ["Server", "Indexes"], "commit_groups": [["ab596105b"]], "identity_text": "Allow BRIN indexes to record multiple min/max values per range (Tomas Vondra) This is useful if there are groups of values in each page range.", "commit_aliases": ["ab596105b"], "source_commits": ["ab596105b"], "source_entry_id": "14.0/changes/023", "db_id": "100451d3734871d41a926744f6024c91", "patch_ids": ["47401334033bb3bbf08d77f68fc21b64"], "statement_hash": "bf24348a110015de71e69798a7cbfe51ceae018f5612a6ea7880b04b10137d2e", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-36120da75947f5c7", "migration": false}, {"id": "14.0-053e10cf6fadaee3", "cves": [], "html": "<p>Allow <acronym>BRIN</acronym> indexes to use bloom filters (Tomas Vondra) <a href=\"https://postgr.es/c/77b88cd1b\">\u00a7</a></p>\n<p>This allows <acronym>BRIN</acronym> indexes to be used effectively with data that is not well-localized in the heap.</p>", "text": "Allow BRIN indexes to use bloom filters (Tomas Vondra) \u00a7 This allows BRIN indexes to be used effectively with data that is not well-localized in the heap.", "title": "Allow BRIN indexes to use bloom filters", "commits": ["77b88cd1b"], "section": "Server / Indexes", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.5", "source_hash": "f4db715c518a257aab6e3a51bd469436bbc3ee06db22790b4cfa06bd6cf5797d", "section_path": ["Server", "Indexes"], "commit_groups": [["77b88cd1b"]], "identity_text": "Allow BRIN indexes to use bloom filters (Tomas Vondra) This allows BRIN indexes to be used effectively with data that is not well-localized in the heap.", "commit_aliases": ["77b88cd1b"], "source_commits": ["77b88cd1b"], "source_entry_id": "14.0/changes/024", "db_id": "5547b4aa0a249906cb102dfacd7e1e9a", "patch_ids": ["361d989f0dc9e6b9fa00be9f7840520d"], "statement_hash": "7a5aa6ba84f59d34cecb50bd2df2846788257284048ff467ed01729238fd876d", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-053e10cf6fadaee3", "migration": false}, {"id": "14.0-9636884206673f5a", "cves": [], "html": "<p>Allow some <a href=\"/docs/14/gist.html\" title=\"Chapter\u00a065.\u00a0GiST Indexes\">GiST</a> indexes to be built by presorting the data (Andrey Borodin) <a href=\"https://postgr.es/c/16fa9b2b3\">\u00a7</a></p>\n<p>Presorting happens automatically and allows for faster index creation and smaller indexes.</p>", "text": "Allow some GiST indexes to be built by presorting the data (Andrey Borodin) \u00a7 Presorting happens automatically and allows for faster index creation and smaller indexes.", "title": "Allow some GiST indexes to be built by presorting the data", "commits": ["16fa9b2b3"], "section": "Server / Indexes", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.5", "source_hash": "e16aeb0911ac58fc12e83f6112c405bdee1cbdfe7dde2fd1611422c9b80f4a3f", "section_path": ["Server", "Indexes"], "commit_groups": [["16fa9b2b3"]], "identity_text": "Allow some GiST indexes to be built by presorting the data (Andrey Borodin) Presorting happens automatically and allows for faster index creation and smaller indexes.", "commit_aliases": ["16fa9b2b3"], "source_commits": ["16fa9b2b3"], "source_entry_id": "14.0/changes/025", "db_id": "802c7d515c214d92c0c0e820ed339435", "patch_ids": ["dadcdaf5ab32c9a6959c70f2b7bb513e"], "statement_hash": "bacb06f3d1636179cf16e8aeea22a62a96170d8c33e40d06186a4aaac7d22a2f", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-9636884206673f5a", "migration": false}, {"id": "14.0-959c4a49ef80804b", "cves": [], "html": "<p>Allow <a href=\"/docs/14/spgist.html\" title=\"Chapter\u00a066.\u00a0SP-GiST Indexes\">SP-GiST</a> indexes to contain <code>INCLUDE</code>'d columns (Pavel Borisov) <a href=\"https://postgr.es/c/09c1c6ab4\">\u00a7</a></p>", "text": "Allow SP-GiST indexes to contain INCLUDE'd columns (Pavel Borisov) \u00a7", "title": "Allow SP-GiST indexes to contain INCLUDE'd columns", "commits": ["09c1c6ab4"], "section": "Server / Indexes", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.5", "source_hash": "ba587c36bd0d1f447255a645e71655b4d42c5158eac02d3d7af367d8c0d27963", "section_path": ["Server", "Indexes"], "commit_groups": [["09c1c6ab4"]], "identity_text": "Allow SP-GiST indexes to contain INCLUDE'd columns (Pavel Borisov)", "commit_aliases": ["09c1c6ab4"], "source_commits": ["09c1c6ab4"], "source_entry_id": "14.0/changes/026", "db_id": "269c2d2c0940fa25937ede4f97cf5d29", "patch_ids": ["cf07700efc5c72d7d98054f7442f2263"], "statement_hash": "7baeda213650066780bd11b32c6e9e3900fdc02d9d479a697770110a74a6bc4e", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-959c4a49ef80804b", "migration": false}, {"id": "14.0-c628ef77afe7acdf", "cves": [], "html": "<p>Allow hash lookup for <code>IN</code> clauses with many constants (James Coleman, David Rowley) <a href=\"https://postgr.es/c/50e17ad28\">\u00a7</a></p>\n<p>Previously the code always sequentially scanned the list of values.</p>", "text": "Allow hash lookup for IN clauses with many constants (James Coleman, David Rowley) \u00a7 Previously the code always sequentially scanned the list of values.", "title": "Allow hash lookup for IN clauses with many constants", "commits": ["50e17ad28"], "section": "Server / Optimizer", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.6", "source_hash": "7fe9d9cd6fb3a5f2ac2e679627f86dc8f4bd795645f3cf24fed9663de6ceaa63", "section_path": ["Server", "Optimizer"], "commit_groups": [["50e17ad28"]], "identity_text": "Allow hash lookup for IN clauses with many constants (James Coleman, David Rowley) Previously the code always sequentially scanned the list of values.", "commit_aliases": ["50e17ad28"], "source_commits": ["50e17ad28"], "source_entry_id": "14.0/changes/027", "db_id": "7ca6ebac03cb187d8ed837b4f46c0e1b", "patch_ids": ["b1b2b8064d51829878c86f19b5527657"], "statement_hash": "a31239b0c6757658b16c4fef056579e4446569e215c564869dc74d41b19874ba", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-c628ef77afe7acdf", "migration": false}, {"id": "14.0-95d57a6794430f97", "cves": [], "html": "<p>Increase the number of places <a href=\"/docs/14/planner-stats.html#PLANNER-STATS-EXTENDED\" title=\"14.2.2.\u00a0Extended Statistics\">extended statistics</a> can be used for <code>OR</code> clause estimation (Tomas Vondra, Dean Rasheed) <a href=\"https://postgr.es/c/25a9e54d2\">\u00a7</a> <a href=\"https://postgr.es/c/88b0898fe\">\u00a7</a> <a href=\"https://postgr.es/c/4f5760d4a\">\u00a7</a></p>", "text": "Increase the number of places extended statistics can be used for OR clause estimation (Tomas Vondra, Dean Rasheed) \u00a7 \u00a7 \u00a7", "title": "Increase the number of places extended statistics can be used for OR clause estimation", "commits": ["25a9e54d2", "4f5760d4a", "88b0898fe"], "section": "Server / Optimizer", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.6", "source_hash": "b8b47c642c13a1b92f483bdc92948a32f8a8b27d260c4fcd91ec9717586eadc7", "section_path": ["Server", "Optimizer"], "commit_groups": [["25a9e54d2"], ["4f5760d4a"], ["88b0898fe"]], "identity_text": "Increase the number of places extended statistics can be used for OR clause estimation (Tomas Vondra, Dean Rasheed)", "commit_aliases": ["25a9e54d2", "4f5760d4a", "88b0898fe"], "source_commits": ["25a9e54d2", "4f5760d4a", "88b0898fe"], "source_entry_id": "14.0/changes/028", "db_id": "af7efdbad5858a3dfee700eea9e7dfc2", "patch_ids": ["9a1cce8c2356e05ab681a3da3935202e", "c91c3d63f296e3edf6fe04fd9b543a1a", "fe01df3f67ae910a02dbbbd0717b0d34"], "statement_hash": "c796c5eb89eaae772c3806ddd3a7560128ce712eefee9ec0fa1cde4c4c44a12c", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-95d57a6794430f97", "migration": false}, {"id": "14.0-49a5c3f79e2e04f7", "cves": [], "html": "<p>Allow extended statistics on expressions (Tomas Vondra) <a href=\"https://postgr.es/c/a4d75c86b\">\u00a7</a></p>\n<p>This allows statistics on a group of expressions and columns, rather than only columns like previously. System view <a href=\"/docs/14/view-pg-stats-ext-exprs.html\" title=\"52.91.\u00a0pg_stats_ext_exprs\"><code>pg_stats_ext_exprs</code></a> reports such statistics.</p>", "text": "Allow extended statistics on expressions (Tomas Vondra) \u00a7 This allows statistics on a group of expressions and columns, rather than only columns like previously. System view pg_stats_ext_exprs reports such statistics.", "title": "Allow extended statistics on expressions", "commits": ["a4d75c86b"], "section": "Server / Optimizer", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.6", "source_hash": "a737ffd60f210e3439889636aa41962174ca120c3a34bf37386221141e7d4417", "section_path": ["Server", "Optimizer"], "commit_groups": [["a4d75c86b"]], "identity_text": "Allow extended statistics on expressions (Tomas Vondra) This allows statistics on a group of expressions and columns, rather than only columns like previously. System view pg_stats_ext_exprs reports such statistics.", "commit_aliases": ["a4d75c86b"], "source_commits": ["a4d75c86b"], "source_entry_id": "14.0/changes/029", "db_id": "a84c47a487bc569cfce87934f74d4fc9", "patch_ids": ["fc03f6253c57b9e06f77ef1e3fa4337a"], "statement_hash": "ff3b5481d4b03b862cace2fb805ed403a6008967d31ed931ca2cd5f69642fa42", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-49a5c3f79e2e04f7", "migration": false}, {"id": "14.0-d1caa3aae5ae8bb5", "cves": [], "html": "<p>Allow efficient heap scanning of a range of <a href=\"/docs/14/datatype-oid.html#DATATYPE-OID-TABLE\" title=\"Table\u00a08.26.\u00a0Object Identifier Types\"><code>TIDs</code></a> (Edmund Horner, David Rowley) <a href=\"https://postgr.es/c/bb437f995\">\u00a7</a></p>\n<p>Previously a sequential scan was required for non-equality <code>TID</code> specifications.</p>", "text": "Allow efficient heap scanning of a range of TIDs (Edmund Horner, David Rowley) \u00a7 Previously a sequential scan was required for non-equality TID specifications.", "title": "Allow efficient heap scanning of a range of TIDs", "commits": ["bb437f995"], "section": "Server / Optimizer", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.6", "source_hash": "beee79f8d794f745499ed834a8d1860a82d78f023b396b22a20bfef2f853a725", "section_path": ["Server", "Optimizer"], "commit_groups": [["bb437f995"]], "identity_text": "Allow efficient heap scanning of a range of TIDs (Edmund Horner, David Rowley) Previously a sequential scan was required for non-equality TID specifications.", "commit_aliases": ["bb437f995"], "source_commits": ["bb437f995"], "source_entry_id": "14.0/changes/030", "db_id": "d6d1ff34f63d3e2881d85a967a1037d5", "patch_ids": ["83883f5982c3e425367ee6186348ddd3"], "statement_hash": "cbde75f3a56ae1820f8aed99e6e3edde8164b72daac2404da85f083bee9233e3", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-d1caa3aae5ae8bb5", "migration": false}, {"id": "14.0-1ad0919abc31244b", "cves": [], "html": "<p>Fix <a href=\"/docs/14/sql-explain.html\" title=\"EXPLAIN\"><code>EXPLAIN CREATE TABLE AS</code></a> and <code>EXPLAIN CREATE MATERIALIZED VIEW</code> to honor <code>IF NOT EXISTS</code> (Bharath Rupireddy) <a href=\"https://postgr.es/c/e665769e6\">\u00a7</a></p>\n<p>Previously, if the object already existed, <code>EXPLAIN</code> would fail.</p>", "text": "Fix EXPLAIN CREATE TABLE AS and EXPLAIN CREATE MATERIALIZED VIEW to honor IF NOT EXISTS (Bharath Rupireddy) \u00a7 Previously, if the object already existed, EXPLAIN would fail.", "title": "Fix EXPLAIN CREATE TABLE AS and EXPLAIN CREATE MATERIALIZED VIEW to honor IF NOT EXISTS", "commits": ["e665769e6"], "section": "Server / Optimizer", "category": "bugfix", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.6", "source_hash": "6e4b7f4c4a8590442c21b77b0339cacec24aa59dde42e926aa2d3ce7539e688c", "section_path": ["Server", "Optimizer"], "commit_groups": [["e665769e6"]], "identity_text": "Fix EXPLAIN CREATE TABLE AS and EXPLAIN CREATE MATERIALIZED VIEW to honor IF NOT EXISTS (Bharath Rupireddy) Previously, if the object already existed, EXPLAIN would fail.", "commit_aliases": ["e665769e6"], "source_commits": ["e665769e6"], "source_entry_id": "14.0/changes/031", "db_id": "00564d2b5bb7d7325f3cdc5d2abca385", "patch_ids": ["7acdc83a09895a5a0d4a648e881cf3d8"], "statement_hash": "f9f5b15912fbacd23afe5a66e3d47f4124f6a7aea4670b8c4b4aef9ff3c0f34a", "relations": [], "category_label": "Bug fixes", "url": "/docs/compare/?release=14.0#14.0-1ad0919abc31244b", "migration": false}, {"id": "14.0-95a13ff505bcaa6b", "cves": [], "html": "<p>Improve the speed of computing <acronym>MVCC</acronym> <a href=\"/docs/14/mvcc.html\" title=\"Chapter\u00a013.\u00a0Concurrency Control\">visibility snapshots</a> on systems with many CPUs and high session counts (Andres Freund) <a href=\"https://postgr.es/c/dc7420c2c\">\u00a7</a> <a href=\"https://postgr.es/c/1f51c17c6\">\u00a7</a> <a href=\"https://postgr.es/c/941697c3c\">\u00a7</a> <a href=\"https://postgr.es/c/5788e258b\">\u00a7</a> <a href=\"https://postgr.es/c/73487a60f\">\u00a7</a> <a href=\"https://postgr.es/c/623a9ba79\">\u00a7</a></p>\n<p>This also improves performance when there are many idle sessions.</p>", "text": "Improve the speed of computing MVCC visibility snapshots on systems with many CPUs and high session counts (Andres Freund) \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 This also improves performance when there are many idle sessions.", "title": "Improve the speed of computing MVCC visibility snapshots on systems with many CPUs and high session counts", "commits": ["1f51c17c6", "5788e258b", "623a9ba79", "73487a60f", "941697c3c", "dc7420c2c"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.7", "source_hash": "be1a87afa59ba72f640470fe20097bf83b424494e1f4e43e94c707a0438ed886", "section_path": ["Server", "General Performance"], "commit_groups": [["1f51c17c6"], ["5788e258b"], ["623a9ba79"], ["73487a60f"], ["941697c3c"], ["dc7420c2c"]], "identity_text": "Improve the speed of computing MVCC visibility snapshots on systems with many CPUs and high session counts (Andres Freund) This also improves performance when there are many idle sessions.", "commit_aliases": ["1f51c17c6", "5788e258b", "623a9ba79", "73487a60f", "941697c3c", "dc7420c2c"], "source_commits": ["1f51c17c6", "5788e258b", "623a9ba79", "73487a60f", "941697c3c", "dc7420c2c"], "source_entry_id": "14.0/changes/032", "db_id": "9c9cd6f9a909edd8bea0b8ba4f0b304a", "patch_ids": ["1d872442ebf83be6faef1d252c629456", "278470079dd00c41c03fffbc8b6fe697", "32937d7ccfca3a13611ea293461da8c4", "3d6202c30080972f6e5cfa1f95cc1408", "3fcaf65f10a1c86b293a02aec07f7211", "5d4b6f0f51da6c2670fa03b150ddb904"], "statement_hash": "9201bab9f0364153d9b62ed7742fddc2e794ccb49d8b045c8156004441f40a55", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=14.0#14.0-95a13ff505bcaa6b", "migration": false}, {"id": "14.0-e7e77ecf041e0e65", "cves": [], "html": "<p>Add executor method to memoize results from the inner side of a nested-loop join (David Rowley) <a href=\"https://postgr.es/c/9eacee2e6\">\u00a7</a></p>\n<p>This is useful if only a small percentage of rows is checked on the inner side. It can be disabled via server parameter <a href=\"/docs/14/runtime-config-query.html#GUC-ENABLE-MEMOIZE\">enable_memoize</a>.</p>", "text": "Add executor method to memoize results from the inner side of a nested-loop join (David Rowley) \u00a7 This is useful if only a small percentage of rows is checked on the inner side. It can be disabled via server parameter enable_memoize.", "title": "Add executor method to memoize results from the inner side of a nested-loop join", "commits": ["9eacee2e6"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.7", "source_hash": "020a98bc95f56be190c73f59512e3b89ae47f535f84c3cca66c31b38b39a437f", "section_path": ["Server", "General Performance"], "commit_groups": [["9eacee2e6"]], "identity_text": "Add executor method to memoize results from the inner side of a nested-loop join (David Rowley) This is useful if only a small percentage of rows is checked on the inner side. It can be disabled via server parameter guc-enable-memoize .", "commit_aliases": ["9eacee2e6"], "source_commits": ["9eacee2e6"], "source_entry_id": "14.0/changes/033", "db_id": "8cddf1b5ae21cddefc40120ecd61c02c", "patch_ids": ["eee5e51c5b53bf2d37af98b30185dbef"], "statement_hash": "a82cf0e75e9fee0020b12359553afb583374ebc6702ffaaaaed6be7024a084e5", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=14.0#14.0-e7e77ecf041e0e65", "migration": false}, {"id": "14.0-29b3d809133a83b5", "cves": [], "html": "<p>Allow <a href=\"/docs/14/functions-window.html\" title=\"9.22.\u00a0Window Functions\">window functions</a> to perform incremental sorts (David Rowley) <a href=\"https://postgr.es/c/62e221e1c\">\u00a7</a></p>", "text": "Allow window functions to perform incremental sorts (David Rowley) \u00a7", "title": "Allow window functions to perform incremental sorts", "commits": ["62e221e1c"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.7", "source_hash": "7705a575aa69ab1734fc0da81a602cc2c02ca7f7b0e9b4ff9e984bbc4259c11d", "section_path": ["Server", "General Performance"], "commit_groups": [["62e221e1c"]], "identity_text": "Allow window functions to perform incremental sorts (David Rowley)", "commit_aliases": ["62e221e1c"], "source_commits": ["62e221e1c"], "source_entry_id": "14.0/changes/034", "db_id": "eaf4181723696bfa32db860ca47c109e", "patch_ids": ["47a1163205a01ac8d9713c7f1788b004"], "statement_hash": "4c4767541fa0b8434912ea71ca8359d661f6d22a3be2869a1ad21730bc3bc03c", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=14.0#14.0-29b3d809133a83b5", "migration": false}, {"id": "14.0-1c7825423e505539", "cves": [], "html": "<p>Improve the I/O performance of parallel sequential scans (Thomas Munro, David Rowley) <a href=\"https://postgr.es/c/56788d215\">\u00a7</a></p>\n<p>This was done by allocating blocks in groups to <a href=\"/docs/14/runtime-config-resource.html#GUC-MAX-PARALLEL-WORKERS\">parallel workers</a>.</p>", "text": "Improve the I/O performance of parallel sequential scans (Thomas Munro, David Rowley) \u00a7 This was done by allocating blocks in groups to parallel workers.", "title": "Improve the I/O performance of parallel sequential scans", "commits": ["56788d215"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.7", "source_hash": "28356ee8c666a713e3f6618af28d960353357e68f9bb63cfa4de68e3baa6ba69", "section_path": ["Server", "General Performance"], "commit_groups": [["56788d215"]], "identity_text": "Improve the I/O performance of parallel sequential scans (Thomas Munro, David Rowley) This was done by allocating blocks in groups to parallel workers.", "commit_aliases": ["56788d215"], "source_commits": ["56788d215"], "source_entry_id": "14.0/changes/035", "db_id": "d2ca5c4d7817b3f3d619b0794ba26100", "patch_ids": ["da8a19a09c56be0388815e70aa4ff3c8"], "statement_hash": "bce2cfb8b3d5dc42999bb9eb57ce71c5b877a03553bc3b2b32083584f02e935c", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=14.0#14.0-1c7825423e505539", "migration": false}, {"id": "14.0-639e627cd0e53375", "cves": [], "html": "<p>Allow a query referencing multiple <a href=\"/docs/14/sql-createforeigntable.html\" title=\"CREATE FOREIGN TABLE\">foreign tables</a> to perform foreign table scans in parallel (Robert Haas, Kyotaro Horiguchi, Thomas Munro, Etsuro Fujita) <a href=\"https://postgr.es/c/27e1f1456\">\u00a7</a></p>\n<p><a href=\"/docs/14/postgres-fdw.html\" title=\"F.35.\u00a0postgres_fdw\"><span>postgres_fdw</span></a> supports this type of scan if <code>async_capable</code> is set.</p>", "text": "Allow a query referencing multiple foreign tables to perform foreign table scans in parallel (Robert Haas, Kyotaro Horiguchi, Thomas Munro, Etsuro Fujita) \u00a7 postgres_fdw supports this type of scan if async_capable is set.", "title": "Allow a query referencing multiple foreign tables to perform foreign table scans in parallel", "commits": ["27e1f1456"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.7", "source_hash": "96ef615dc361b86a1d3a9e548da28108eef2800acba06d1c83721926165b8781", "section_path": ["Server", "General Performance"], "commit_groups": [["27e1f1456"]], "identity_text": "Allow a query referencing multiple foreign tables to perform foreign table scans in parallel (Robert Haas, Kyotaro Horiguchi, Thomas Munro, Etsuro Fujita) postgres_fdw supports this type of scan if async_capable is set.", "commit_aliases": ["27e1f1456"], "source_commits": ["27e1f1456"], "source_entry_id": "14.0/changes/036", "db_id": "3b832efdc2d6616bb32920cefb77b552", "patch_ids": ["a675d8525a0e6fe68b9d6e552c520784"], "statement_hash": "137424318f2099cff7ed98e17138a74e10f05132e46b405ef810e2a7a6b8eb56", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=14.0#14.0-639e627cd0e53375", "migration": false}, {"id": "14.0-44f4e5e3e924ae2b", "cves": [], "html": "<p>Allow <a href=\"/docs/14/routine-vacuuming.html#VACUUM-FOR-STATISTICS\" title=\"25.1.3.\u00a0Updating Planner Statistics\">analyze</a> to do page prefetching (Stephen Frost) <a href=\"https://postgr.es/c/c6fc50cb4\">\u00a7</a></p>\n<p>This is controlled by <a href=\"/docs/14/runtime-config-resource.html#GUC-MAINTENANCE-IO-CONCURRENCY\">maintenance_io_concurrency</a>.</p>", "text": "Allow analyze to do page prefetching (Stephen Frost) \u00a7 This is controlled by maintenance_io_concurrency.", "title": "Allow analyze to do page prefetching", "commits": ["c6fc50cb4"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.7", "source_hash": "3a66e98af78f48ffc638fd97a328dd1028880b071c93ba39984d0ab9ce142c28", "section_path": ["Server", "General Performance"], "commit_groups": [["c6fc50cb4"]], "identity_text": "Allow analyze to do page prefetching (Stephen Frost) This is controlled by guc-maintenance-io-concurrency .", "commit_aliases": ["c6fc50cb4"], "source_commits": ["c6fc50cb4"], "source_entry_id": "14.0/changes/037", "db_id": "4eeac12426b0d4181e8bae6528959e36", "patch_ids": ["788e8ba623e3a3351637be294104cbae"], "statement_hash": "0ab0eb5ed1e262053d2b6b77842491db482cd179a71940d8b5d0d8267e56a30e", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=14.0#14.0-44f4e5e3e924ae2b", "migration": false}, {"id": "14.0-ff7b81f2bac9508f", "cves": [], "html": "<p>Improve performance of <a href=\"/docs/14/functions-matching.html#FUNCTIONS-POSIX-REGEXP\" title=\"9.7.3.\u00a0POSIX Regular Expressions\">regular expression</a> searches (Tom Lane) <a href=\"https://postgr.es/c/08c0d6ad6\">\u00a7</a> <a href=\"https://postgr.es/c/824bf7190\">\u00a7</a> <a href=\"https://postgr.es/c/cebc1d34e\">\u00a7</a> <a href=\"https://postgr.es/c/581043089\">\u00a7</a> <a href=\"https://postgr.es/c/ea1268f63\">\u00a7</a> <a href=\"https://postgr.es/c/190c79884\">\u00a7</a> <a href=\"https://postgr.es/c/0fc1af174\">\u00a7</a> <a href=\"https://postgr.es/c/0c3405cf1\">\u00a7</a> <a href=\"https://postgr.es/c/4604f83fd\">\u00a7</a> <a href=\"https://postgr.es/c/6c20bdb2a\">\u00a7</a> <a href=\"https://postgr.es/c/f68970e33\">\u00a7</a></p>", "text": "Improve performance of regular expression searches (Tom Lane) \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7", "title": "Improve performance of regular expression searches", "commits": ["08c0d6ad6", "0c3405cf1", "0fc1af174", "190c79884", "4604f83fd", "581043089", "6c20bdb2a", "824bf7190", "cebc1d34e", "ea1268f63", "f68970e33"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.7", "source_hash": "f929d8e5d8a1f5b3d596abd0677af1fbf944c1ebc67c849d5323b735a1a4e7ce", "section_path": ["Server", "General Performance"], "commit_groups": [["08c0d6ad6"], ["0c3405cf1"], ["0fc1af174"], ["190c79884"], ["4604f83fd"], ["581043089"], ["6c20bdb2a"], ["824bf7190"], ["cebc1d34e"], ["ea1268f63"], ["f68970e33"]], "identity_text": "Improve performance of regular expression searches (Tom Lane)", "commit_aliases": ["08c0d6ad6", "0c3405cf1", "0fc1af174", "190c79884", "4604f83fd", "581043089", "6c20bdb2a", "824bf7190", "cebc1d34e", "ea1268f63", "f68970e33"], "source_commits": ["08c0d6ad6", "0c3405cf1", "0fc1af174", "190c79884", "4604f83fd", "581043089", "6c20bdb2a", "824bf7190", "cebc1d34e", "ea1268f63", "f68970e33"], "source_entry_id": "14.0/changes/038", "db_id": "b4c154f1ea77d51718dc19c2963d0a61", "patch_ids": ["2364a5283f567b024cca26965ff37126", "26994e1efdf9bd692681412f5de75075", "42200236e457b239334c4f8f2164f9a9", "5c3d98ad585b57440832315977455ed0", "6b0843be47edf1051c458f3fa34ff7f2", "732e851f0b055240c87bfd52e4ebbacd", "7b3a47c22c7f74a09355b96693958832", "8021dfdd4596d2fd7f2a108defb0939c", "a241835bbac0961b6829d67ad6402195", "a934f4729ee374f5ccb0e6689546aad7", "b5822fc3aa485f5c188cea8cd4b29b26"], "statement_hash": "4cd113d08fdebf1caa3bcbdf7288b50a42120a2a0274cdcc4816921e8bb7dd2f", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=14.0#14.0-ff7b81f2bac9508f", "migration": false}, {"id": "14.0-ecec4f8a6655d6f2", "cves": [], "html": "<p>Dramatically improve Unicode normalization performance (John Naylor) <a href=\"https://postgr.es/c/80f8eb79e\">\u00a7</a> <a href=\"https://postgr.es/c/783f0cc64\">\u00a7</a></p>\n<p>This speeds <a href=\"/docs/14/functions-string.html\" title=\"9.4.\u00a0String Functions and Operators\"><code>normalize()</code></a> and <code>IS NORMALIZED</code>.</p>", "text": "Dramatically improve Unicode normalization performance (John Naylor) \u00a7 \u00a7 This speeds normalize() and IS NORMALIZED.", "title": "Dramatically improve Unicode normalization performance", "commits": ["783f0cc64", "80f8eb79e"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.7", "source_hash": "cd54cb5f2801051eda0af5006b38340caaa21a24d4a6e9d110426c9319553552", "section_path": ["Server", "General Performance"], "commit_groups": [["783f0cc64"], ["80f8eb79e"]], "identity_text": "Dramatically improve Unicode normalization performance (John Naylor) This speeds normalize() and IS NORMALIZED.", "commit_aliases": ["783f0cc64", "80f8eb79e"], "source_commits": ["783f0cc64", "80f8eb79e"], "source_entry_id": "14.0/changes/039", "db_id": "3b78dd2bbdd31589bdd1d814b7214467", "patch_ids": ["dad2b70be2bc60673d08f4c7dce3fed1", "ea99be2bd9af85b72d4d7f374602dd63"], "statement_hash": "ef714803a65425df778273a560ad27b7ad4f0f392933b3164f682dde178788ad", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=14.0#14.0-ecec4f8a6655d6f2", "migration": false}, {"id": "14.0-2d7442b9ce57da18", "cves": [], "html": "<p>Add ability to use <a href=\"/docs/14/sql-createtable.html\" title=\"CREATE TABLE\">LZ4 compression</a> on <acronym>TOAST</acronym> data (Dilip Kumar) <a href=\"https://postgr.es/c/bbe0a81db\">\u00a7</a></p>\n<p>This can be set at the column level, or set as a default via server parameter <a href=\"/docs/14/runtime-config-client.html#GUC-DEFAULT-TOAST-COMPRESSION\">default_toast_compression</a>. The server must be compiled with <a href=\"/docs/14/install-procedure.html#CONFIGURE-OPTIONS-FEATURES\" title=\"17.4.1.2.\u00a0PostgreSQL Features\"><code>--with-lz4</code></a> to support this feature. The default setting is still pglz.</p>", "text": "Add ability to use LZ4 compression on TOAST data (Dilip Kumar) \u00a7 This can be set at the column level, or set as a default via server parameter default_toast_compression. The server must be compiled with --with-lz4 to support this feature. The default setting is still pglz.", "title": "Add ability to use LZ4 compression on TOAST data", "commits": ["bbe0a81db"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.7", "source_hash": "f6f64e0bafdad8c87dc1e12b3157cd3d0a84bfc762317f8258f177a349fed0e4", "section_path": ["Server", "General Performance"], "commit_groups": [["bbe0a81db"]], "identity_text": "Add ability to use LZ4 compression on TOAST data (Dilip Kumar) This can be set at the column level, or set as a default via server parameter guc-default-toast-compression . The server must be compiled with --with-lz4 to support this feature. The default setting is still pglz.", "commit_aliases": ["bbe0a81db"], "source_commits": ["bbe0a81db"], "source_entry_id": "14.0/changes/040", "db_id": "d188477ffcd17fdc3c6405f79ceb9668", "patch_ids": ["e4c0d6fe92269f0035c12d23522010a6"], "statement_hash": "d0471bc266f4acd3e88c9faa118c4351a383fbac055488ba8df09d219030ff61", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=14.0#14.0-2d7442b9ce57da18", "migration": false}, {"id": "14.0-e20c6697ebbeab13", "cves": [], "html": "<p>If server parameter <a href=\"/docs/14/runtime-config-statistics.html#GUC-COMPUTE-QUERY-ID\">compute_query_id</a> is enabled, display the query id in <a href=\"/docs/14/monitoring-stats.html#MONITORING-PG-STAT-ACTIVITY-VIEW\" title=\"28.2.3.\u00a0pg_stat_activity\"><code>pg_stat_activity</code></a>, <a href=\"/docs/14/sql-explain.html\" title=\"EXPLAIN\"><code>EXPLAIN VERBOSE</code></a>, <a href=\"/docs/14/runtime-config-logging.html\" title=\"20.8.\u00a0Error Reporting and Logging\">csvlog</a>, and optionally in <a href=\"/docs/14/runtime-config-logging.html#GUC-LOG-LINE-PREFIX\">log_line_prefix</a> (Julien Rouhaud) <a href=\"https://postgr.es/c/4f0b0966c\">\u00a7</a> <a href=\"https://postgr.es/c/f57a2f5e0\">\u00a7</a> <a href=\"https://postgr.es/c/9660834dd\">\u00a7</a> <a href=\"https://postgr.es/c/f7a97b6ec\">\u00a7</a> <a href=\"https://postgr.es/c/cafde58b3\">\u00a7</a></p>\n<p>A query id computed by an extension will also be displayed.</p>", "text": "If server parameter compute_query_id is enabled, display the query id in pg_stat_activity, EXPLAIN VERBOSE, csvlog, and optionally in log_line_prefix (Julien Rouhaud) \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 A query id computed by an extension will also be displayed.", "title": "If server parameter compute_query_id is enabled, display the query id in pg_stat_activity, EXPLAIN VERBOSE, csvlog, and optionally in log_line_prefix", "commits": ["4f0b0966c", "9660834dd", "cafde58b3", "f57a2f5e0", "f7a97b6ec"], "section": "Server / Monitoring", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.8", "source_hash": "900e130d8a5347fa5f83b978c1437d8773f442c3a1b9cfe7db5b71925a8c04a2", "section_path": ["Server", "Monitoring"], "commit_groups": [["4f0b0966c"], ["9660834dd"], ["cafde58b3"], ["f57a2f5e0"], ["f7a97b6ec"]], "identity_text": "If server parameter guc-compute-query-id is enabled, display the query id in pg_stat_activity, EXPLAIN VERBOSE, csvlog, and optionally in guc-log-line-prefix (Julien Rouhaud) A query id computed by an extension will also be displayed.", "commit_aliases": ["4f0b0966c", "9660834dd", "cafde58b3", "f57a2f5e0", "f7a97b6ec"], "source_commits": ["4f0b0966c", "9660834dd", "cafde58b3", "f57a2f5e0", "f7a97b6ec"], "source_entry_id": "14.0/changes/041", "db_id": "6f5b0cadbc436b426741630da6395cbc", "patch_ids": ["121b9e887d114fa2359ba0269b820f84", "22bd28a5ed0d0aab6297b4fe1b298434", "37196aec09acb6f2c1f058524b1b7322", "a5e04145d404137dc95cacdb2f1f9fbd", "cff8eba381bf9751b7032a0a172115dc"], "statement_hash": "202b7cf8d813ed12f7d01761dadd5b80e2575cb041ffe1a7569ac0b7bf00f1d0", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-e20c6697ebbeab13", "migration": false}, {"id": "14.0-b785b808addc2124", "cves": [], "html": "<p>Improve logging of <a href=\"/docs/14/routine-vacuuming.html#AUTOVACUUM\" title=\"25.1.6.\u00a0The Autovacuum Daemon\">auto-vacuum</a> and auto-analyze (Stephen Frost, Jakub Wartak) <a href=\"https://postgr.es/c/94d13d474\">\u00a7</a></p>\n<p>This reports I/O timings for auto-vacuum and auto-analyze if <a href=\"/docs/14/runtime-config-statistics.html#GUC-TRACK-IO-TIMING\">track_io_timing</a> is enabled. Also, report buffer read and dirty rates for auto-analyze.</p>", "text": "Improve logging of auto-vacuum and auto-analyze (Stephen Frost, Jakub Wartak) \u00a7 This reports I/O timings for auto-vacuum and auto-analyze if track_io_timing is enabled. Also, report buffer read and dirty rates for auto-analyze.", "title": "Improve logging of auto-vacuum and auto-analyze", "commits": ["94d13d474"], "section": "Server / Monitoring", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.8", "source_hash": "3e87e5be11b961eb5d0493ff01b0cbb2dd176f8e86164ea6fbcacee1c1b377ca", "section_path": ["Server", "Monitoring"], "commit_groups": [["94d13d474"]], "identity_text": "Improve logging of auto-vacuum and auto-analyze (Stephen Frost, Jakub Wartak) This reports I/O timings for auto-vacuum and auto-analyze if guc-track-io-timing is enabled. Also, report buffer read and dirty rates for auto-analyze.", "commit_aliases": ["94d13d474"], "source_commits": ["94d13d474"], "source_entry_id": "14.0/changes/042", "db_id": "43fbfb52b5182feb64cd6faa2b1e863c", "patch_ids": ["469bf32a287fe50f1773aa0340cbbab7"], "statement_hash": "a735bc7a8175112056d3cccec66451604551e2a0cdd2f100a61eaed5e9bc35ea", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-b785b808addc2124", "migration": false}, {"id": "14.0-12247a44f733ce93", "cves": [], "html": "<p>Add information about the original user name supplied by the client to the output of <a href=\"/docs/14/runtime-config-logging.html#GUC-LOG-CONNECTIONS\">log_connections</a> (Jacob Champion) <a href=\"https://postgr.es/c/9afffcb83\">\u00a7</a></p>", "text": "Add information about the original user name supplied by the client to the output of log_connections (Jacob Champion) \u00a7", "title": "Add information about the original user name supplied by the client to the output of log_connections", "commits": ["9afffcb83"], "section": "Server / Monitoring", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.8", "source_hash": "542d1e6fda50807adbd6c9ccd2c4c44bc5d31bbdf1b8a0a45db40a75508cf412", "section_path": ["Server", "Monitoring"], "commit_groups": [["9afffcb83"]], "identity_text": "Add information about the original user name supplied by the client to the output of guc-log-connections (Jacob Champion)", "commit_aliases": ["9afffcb83"], "source_commits": ["9afffcb83"], "source_entry_id": "14.0/changes/043", "db_id": "0439e622a8f5d105f23413759141e7ef", "patch_ids": ["22815ab23aea5dee1e3784a751427502"], "statement_hash": "047fc1e1caf4f2b096778700bee8ca5b9fbc1f9e95f0648aeae909a509ca3cc2", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-12247a44f733ce93", "migration": false}, {"id": "14.0-39cd9f56116e70dd", "cves": [], "html": "<p>Add system view <a href=\"/docs/14/progress-reporting.html#COPY-PROGRESS-REPORTING\" title=\"28.4.6.\u00a0COPY Progress Reporting\"><code>pg_stat_progress_copy</code></a> to report <code>COPY</code> progress (Josef \u0160im\u00e1nek, Matthias van de Meent) <a href=\"https://postgr.es/c/8a4f618e7\">\u00a7</a> <a href=\"https://postgr.es/c/9d2d45700\">\u00a7</a></p>", "text": "Add system view pg_stat_progress_copy to report COPY progress (Josef \u0160im\u00e1nek, Matthias van de Meent) \u00a7 \u00a7", "title": "Add system view pg_stat_progress_copy to report COPY progress", "commits": ["8a4f618e7", "9d2d45700"], "section": "Server / System Views", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.9", "source_hash": "04e42b27c141da50c40a4b16d40b0b4c1524be9e15bf8da2a0089182cafe873e", "section_path": ["Server", "System Views"], "commit_groups": [["8a4f618e7"], ["9d2d45700"]], "identity_text": "Add system view pg_stat_progress_copy to report COPY progress (Josef \u0160im\u00e1nek, Matthias van de Meent)", "commit_aliases": ["8a4f618e7", "9d2d45700"], "source_commits": ["8a4f618e7", "9d2d45700"], "source_entry_id": "14.0/changes/044", "db_id": "7ed434c2681f0ab8cb764d3208cb6eac", "patch_ids": ["6a59331891ba17d792823b9b23e98265", "b675e02b48d2be6b7c10e63329db347e"], "statement_hash": "d90c6fab92f7894929bfa83eca5da428afad475eb34d77956f7b03933ab41ebb", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-39cd9f56116e70dd", "migration": false}, {"id": "14.0-addd812ec5c9a8f8", "cves": [], "html": "<p>Add system view <a href=\"/docs/14/monitoring-stats.html#MONITORING-PG-STAT-WAL-VIEW\" title=\"28.2.12.\u00a0pg_stat_wal\"><code>pg_stat_wal</code></a> to report <acronym>WAL</acronym> activity (Masahiro Ikeda) <a href=\"https://postgr.es/c/8d9a93596\">\u00a7</a> <a href=\"https://postgr.es/c/01469241b\">\u00a7</a> <a href=\"https://postgr.es/c/ff99918c6\">\u00a7</a></p>", "text": "Add system view pg_stat_wal to report WAL activity (Masahiro Ikeda) \u00a7 \u00a7 \u00a7", "title": "Add system view pg_stat_wal to report WAL activity", "commits": ["01469241b", "8d9a93596", "ff99918c6"], "section": "Server / System Views", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.9", "source_hash": "0205853afc2187e3fa02ea8d6b42ba637e38e8e4dd98b1120043146617425617", "section_path": ["Server", "System Views"], "commit_groups": [["01469241b"], ["8d9a93596"], ["ff99918c6"]], "identity_text": "Add system view pg_stat_wal to report WAL activity (Masahiro Ikeda)", "commit_aliases": ["01469241b", "8d9a93596", "ff99918c6"], "source_commits": ["01469241b", "8d9a93596", "ff99918c6"], "source_entry_id": "14.0/changes/045", "db_id": "43bb3f43eb2d686b6ec4f1ea3c789248", "patch_ids": ["3080571dd8ceb0816109e228f8c2adf1", "64c16bf6e4367681f5775ea241eac794", "e94ebdb074f34d64579025ab0e3e3152"], "statement_hash": "2195c14afb467752563b4be0454dd9ee3d00bb725e747267b2b1b33989cef17a", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-addd812ec5c9a8f8", "migration": false}, {"id": "14.0-aaee37ae0b8d280b", "cves": [], "html": "<p>Add system view <a href=\"/docs/14/monitoring-stats.html#MONITORING-PG-STAT-REPLICATION-SLOTS-VIEW\" title=\"28.2.5.\u00a0pg_stat_replication_slots\"><code>pg_stat_replication_slots</code></a> to report replication slot activity (Masahiko Sawada, Amit Kapila, Vignesh C) <a href=\"https://postgr.es/c/986816750\">\u00a7</a> <a href=\"https://postgr.es/c/03d51b776\">\u00a7</a> <a href=\"https://postgr.es/c/8e90ec558\">\u00a7</a> <a href=\"https://postgr.es/c/f5fc2f5b2\">\u00a7</a></p>\n<p>The function <a href=\"/docs/14/monitoring-stats.html#MONITORING-STATS-FUNCTIONS\" title=\"28.2.22.\u00a0Statistics Functions\"><code>pg_stat_reset_replication_slot()</code></a> resets slot statistics.</p>", "text": "Add system view pg_stat_replication_slots to report replication slot activity (Masahiko Sawada, Amit Kapila, Vignesh C) \u00a7 \u00a7 \u00a7 \u00a7 The function pg_stat_reset_replication_slot() resets slot statistics.", "title": "Add system view pg_stat_replication_slots to report replication slot activity", "commits": ["03d51b776", "8e90ec558", "986816750", "f5fc2f5b2"], "section": "Server / System Views", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.9", "source_hash": "bee02e9705e11cd2fbe267229e8b96cb283b9206963494d60fcf931c19efdc11", "section_path": ["Server", "System Views"], "commit_groups": [["03d51b776"], ["8e90ec558"], ["986816750"], ["f5fc2f5b2"]], "identity_text": "Add system view pg_stat_replication_slots to report replication slot activity (Masahiko Sawada, Amit Kapila, Vignesh C) The function pg_stat_reset_replication_slot() resets slot statistics.", "commit_aliases": ["03d51b776", "8e90ec558", "986816750", "f5fc2f5b2"], "source_commits": ["03d51b776", "8e90ec558", "986816750", "f5fc2f5b2"], "source_entry_id": "14.0/changes/046", "db_id": "b34432f2ff4603e62c8c1c9e36291c84", "patch_ids": ["39c1fa2325aabc155cfcea3df56061f7", "738147a560b2467fb676581aee3522c2", "f01caa514e85c981872f752b90afb34e", "f077697be3336c38d084ff66f115e6db"], "statement_hash": "3871459b963bfe53f64ae913c91f29f89c6605b1957c8ae6fba7ebeee02b380f", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-aaee37ae0b8d280b", "migration": false}, {"id": "14.0-0ac790167a4e6910", "cves": [], "html": "<p>Add system view <a href=\"/docs/14/view-pg-backend-memory-contexts.html\" title=\"52.67.\u00a0pg_backend_memory_contexts\"><code>pg_backend_memory_contexts</code></a> to report session memory usage (Atsushi Torikoshi, Fujii Masao) <a href=\"https://postgr.es/c/3e98c0baf\">\u00a7</a> <a href=\"https://postgr.es/c/29dd6d8bc\">\u00a7</a></p>", "text": "Add system view pg_backend_memory_contexts to report session memory usage (Atsushi Torikoshi, Fujii Masao) \u00a7 \u00a7", "title": "Add system view pg_backend_memory_contexts to report session memory usage", "commits": ["29dd6d8bc", "3e98c0baf"], "section": "Server / System Views", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.9", "source_hash": "b1b50e3372e0c8fb77b53d2efa309354530cd2c5a84d389ae6fe37ef61adb26d", "section_path": ["Server", "System Views"], "commit_groups": [["29dd6d8bc"], ["3e98c0baf"]], "identity_text": "Add system view pg_backend_memory_contexts to report session memory usage (Atsushi Torikoshi, Fujii Masao)", "commit_aliases": ["29dd6d8bc", "3e98c0baf"], "source_commits": ["29dd6d8bc", "3e98c0baf"], "source_entry_id": "14.0/changes/047", "db_id": "599782f53e7d00729f577ae259e7118b", "patch_ids": ["551910ba4659e574475012244609922c", "89ba2954f558b7d195c3a0faf71d389c"], "statement_hash": "2c6792c05518ebb7742c365d0afdff1b17d39235b632dd820acc269448601c68", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-0ac790167a4e6910", "migration": false}, {"id": "14.0-e04cd7d2bbf3e351", "cves": [], "html": "<p>Add function <a href=\"/docs/14/functions-admin.html#FUNCTIONS-ADMIN-SIGNAL\" title=\"9.27.2.\u00a0Server Signaling Functions\"><code>pg_log_backend_memory_contexts()</code></a> to output the memory contexts of arbitrary backends (Atsushi Torikoshi) <a href=\"https://postgr.es/c/43620e328\">\u00a7</a></p>", "text": "Add function pg_log_backend_memory_contexts() to output the memory contexts of arbitrary backends (Atsushi Torikoshi) \u00a7", "title": "Add function pg_log_backend_memory_contexts() to output the memory contexts of arbitrary backends", "commits": ["43620e328"], "section": "Server / System Views", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.9", "source_hash": "16695530572709b7783ff6445c0780fdd5dd8c287dad2e70ebbfbe55170ae8eb", "section_path": ["Server", "System Views"], "commit_groups": [["43620e328"]], "identity_text": "Add function pg_log_backend_memory_contexts() to output the memory contexts of arbitrary backends (Atsushi Torikoshi)", "commit_aliases": ["43620e328"], "source_commits": ["43620e328"], "source_entry_id": "14.0/changes/048", "db_id": "3f9cb4f560938e8d389940cca975499f", "patch_ids": ["60722399a58aff8222579faf32fa4e45"], "statement_hash": "a98b3de0eda2e7edf3aa7ce7a4f4fed8a044880eb854219679214cb51ccf0b55", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-e04cd7d2bbf3e351", "migration": false}, {"id": "14.0-9ecb923b2e1aaf02", "cves": [], "html": "<p>Add session statistics to the <a href=\"/docs/14/monitoring-stats.html#MONITORING-PG-STAT-DATABASE-VIEW\" title=\"28.2.13.\u00a0pg_stat_database\"><code>pg_stat_database</code></a> system view (Laurenz Albe) <a href=\"https://postgr.es/c/960869da0\">\u00a7</a></p>", "text": "Add session statistics to the pg_stat_database system view (Laurenz Albe) \u00a7", "title": "Add session statistics to the pg_stat_database system view", "commits": ["960869da0"], "section": "Server / System Views", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.9", "source_hash": "0a3079230f3aeb3c795ef9b6cc989cf7e343a85d46d226125fb9f82262ad62cd", "section_path": ["Server", "System Views"], "commit_groups": [["960869da0"]], "identity_text": "Add session statistics to the pg_stat_database system view (Laurenz Albe)", "commit_aliases": ["960869da0"], "source_commits": ["960869da0"], "source_entry_id": "14.0/changes/049", "db_id": "423696da8b94d4592b679b62cbea26cd", "patch_ids": ["e4380918de4b44bd6b33f3d9f6bd8026"], "statement_hash": "74cf146da885674e4324818b877d27656f052645a194bc4af9bce75b6371899c", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-9ecb923b2e1aaf02", "migration": false}, {"id": "14.0-ac4809fcd2c70c11", "cves": [], "html": "<p>Add columns to <a href=\"/docs/14/view-pg-prepared-statements.html\" title=\"52.77.\u00a0pg_prepared_statements\"><code>pg_prepared_statements</code></a> to report generic and custom plan counts (Atsushi Torikoshi, Kyotaro Horiguchi) <a href=\"https://postgr.es/c/d05b172a7\">\u00a7</a></p>", "text": "Add columns to pg_prepared_statements to report generic and custom plan counts (Atsushi Torikoshi, Kyotaro Horiguchi) \u00a7", "title": "Add columns to pg_prepared_statements to report generic and custom plan counts", "commits": ["d05b172a7"], "section": "Server / System Views", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.9", "source_hash": "705411059989bc789abaf416c4c547a90bed7e4120936986585344791d4cce0b", "section_path": ["Server", "System Views"], "commit_groups": [["d05b172a7"]], "identity_text": "Add columns to pg_prepared_statements to report generic and custom plan counts (Atsushi Torikoshi, Kyotaro Horiguchi)", "commit_aliases": ["d05b172a7"], "source_commits": ["d05b172a7"], "source_entry_id": "14.0/changes/050", "db_id": "3a1a476de29c16a51c9c6a4629811475", "patch_ids": ["bd56c71516d9700cdd778cf28df05536"], "statement_hash": "70c40dcc87289af901369b68f92171ce53663afb7ae7675b9f1b4c938aca402f", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-ac4809fcd2c70c11", "migration": false}, {"id": "14.0-971017ed7d39e4a0", "cves": [], "html": "<p>Add lock wait start time to <a href=\"/docs/14/view-pg-locks.html\" title=\"52.74.\u00a0pg_locks\"><code>pg_locks</code></a> (Atsushi Torikoshi) <a href=\"https://postgr.es/c/46d6e5f56\">\u00a7</a></p>", "text": "Add lock wait start time to pg_locks (Atsushi Torikoshi) \u00a7", "title": "Add lock wait start time to pg_locks", "commits": ["46d6e5f56"], "section": "Server / System Views", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.9", "source_hash": "df13c0e2ba0665fe6d5057faa8914c3e7c926622f4e83ad5828f20606c997ffc", "section_path": ["Server", "System Views"], "commit_groups": [["46d6e5f56"]], "identity_text": "Add lock wait start time to pg_locks (Atsushi Torikoshi)", "commit_aliases": ["46d6e5f56"], "source_commits": ["46d6e5f56"], "source_entry_id": "14.0/changes/051", "db_id": "f8951e0c171a5e92ac7a0d5936305253", "patch_ids": ["b92f964d967182625d96aa2e2309a13b"], "statement_hash": "c1e608e67615e8fa0908ad610bdf1cf37f46869c90a515ae2149e28c5ac18b7d", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-971017ed7d39e4a0", "migration": false}, {"id": "14.0-3b609cd6cf6b8902", "cves": [], "html": "<p>Make the archiver process visible in <code>pg_stat_activity</code> (Kyotaro Horiguchi) <a href=\"https://postgr.es/c/d75288fb2\">\u00a7</a></p>", "text": "Make the archiver process visible in pg_stat_activity (Kyotaro Horiguchi) \u00a7", "title": "Make the archiver process visible in pg_stat_activity", "commits": ["d75288fb2"], "section": "Server / System Views", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.9", "source_hash": "24f3239d337fe1c7b84ca7c6b72c6e6807ab6381ec328308157e5066848a46e2", "section_path": ["Server", "System Views"], "commit_groups": [["d75288fb2"]], "identity_text": "Make the archiver process visible in pg_stat_activity (Kyotaro Horiguchi)", "commit_aliases": ["d75288fb2"], "source_commits": ["d75288fb2"], "source_entry_id": "14.0/changes/052", "db_id": "5c2e0235e5677fb2a13d08047fcd9cbb", "patch_ids": ["6164b5b47fbcfb27b6899cdc31724d28"], "statement_hash": "28d8d5579b6f8c3b922de8e79c8957384036d2de4e7bbe984fa0b73ace6a9c06", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-3b609cd6cf6b8902", "migration": false}, {"id": "14.0-f413bc49d6737d98", "cves": [], "html": "<p>Add wait event <a href=\"/docs/14/monitoring-stats.html#MONITORING-PG-STAT-ACTIVITY-VIEW\" title=\"28.2.3.\u00a0pg_stat_activity\"><code>WalReceiverExit</code></a> to report <acronym>WAL</acronym> receiver exit wait time (Fujii Masao) <a href=\"https://postgr.es/c/84007043f\">\u00a7</a></p>", "text": "Add wait event WalReceiverExit to report WAL receiver exit wait time (Fujii Masao) \u00a7", "title": "Add wait event WalReceiverExit to report WAL receiver exit wait time", "commits": ["84007043f"], "section": "Server / System Views", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.9", "source_hash": "252ed578d32a673af22b9d12882bf637a26567f3a39aaee99a010905a77f0bf0", "section_path": ["Server", "System Views"], "commit_groups": [["84007043f"]], "identity_text": "Add wait event WalReceiverExit to report WAL receiver exit wait time (Fujii Masao)", "commit_aliases": ["84007043f"], "source_commits": ["84007043f"], "source_entry_id": "14.0/changes/053", "db_id": "efb95e106f9a5c5cfccad75ae201a5e5", "patch_ids": ["1b36aad556590bf9274daed085425803"], "statement_hash": "217f42cf8bc88c4dcd428781a717cb847e36471e484b25433c83dc13bb965b48", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-f413bc49d6737d98", "migration": false}, {"id": "14.0-2a00821c8489c80a", "cves": [], "html": "<p>Implement information schema view <a href=\"/docs/14/infoschema-routine-column-usage.html\" title=\"37.40.\u00a0routine_column_usage\"><code>routine_column_usage</code></a> to track columns referenced by function and procedure default expressions (Peter Eisentraut) <a href=\"https://postgr.es/c/f40c6969d\">\u00a7</a></p>", "text": "Implement information schema view routine_column_usage to track columns referenced by function and procedure default expressions (Peter Eisentraut) \u00a7", "title": "Implement information schema view routine_column_usage to track columns referenced by function and procedure default expressions", "commits": ["f40c6969d"], "section": "Server / System Views", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.9", "source_hash": "ea64af7a68cb73e88ce9022955d0ab0567bed8bf9add0c3aa5ef5e2cbf51c08d", "section_path": ["Server", "System Views"], "commit_groups": [["f40c6969d"]], "identity_text": "Implement information schema view routine_column_usage to track columns referenced by function and procedure default expressions (Peter Eisentraut)", "commit_aliases": ["f40c6969d"], "source_commits": ["f40c6969d"], "source_entry_id": "14.0/changes/054", "db_id": "6f45b7d546c05cb1c1f1d7f8f1d9e87c", "patch_ids": ["b07921011a94c9adeefd0c40ee4594c4"], "statement_hash": "604d1894416d84c91116cdd3c05b2270ad44bb758ad78d052241e6e7f9012f7b", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-2a00821c8489c80a", "migration": false}, {"id": "14.0-781853793b4657a6", "cves": [], "html": "<p>Allow an SSL certificate's distinguished name (<acronym>DN</acronym>) to be matched for client certificate authentication (Andrew Dunstan) <a href=\"https://postgr.es/c/6d7a6feac\">\u00a7</a></p>\n<p>The new <a href=\"/docs/14/auth-pg-hba-conf.html\" title=\"21.1.\u00a0The pg_hba.conf File\"><code>pg_hba.conf</code></a> option <code>clientname=DN</code> allows comparison with certificate attributes beyond the <code>CN</code> and can be combined with ident maps.</p>", "text": "Allow an SSL certificate's distinguished name (DN) to be matched for client certificate authentication (Andrew Dunstan) \u00a7 The new pg_hba.conf option clientname=DN allows comparison with certificate attributes beyond the CN and can be combined with ident maps.", "title": "Allow an SSL certificate's distinguished name (DN) to be matched for client certificate authentication", "commits": ["6d7a6feac"], "section": "Server / Authentication", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.10", "source_hash": "a1c4b4445be2abddc645ce4a66ad733f27a0293bb52b0b347b00b928ae8df8ce", "section_path": ["Server", "Authentication"], "commit_groups": [["6d7a6feac"]], "identity_text": "Allow an SSL certificate's distinguished name (DN) to be matched for client certificate authentication (Andrew Dunstan) The new pg_hba.conf option clientname=DN allows comparison with certificate attributes beyond the CN and can be combined with ident maps.", "commit_aliases": ["6d7a6feac"], "source_commits": ["6d7a6feac"], "source_entry_id": "14.0/changes/055", "db_id": "bbd90bfe3d70ecf54bdddd0b0f0d0a6d", "patch_ids": ["bb83d4433b068b28cf43bb964cfcef60"], "statement_hash": "79820f3be8fe9569cae40c1d01a416688ace85fcebd7db63f609a67fb4617366", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-781853793b4657a6", "migration": false}, {"id": "14.0-237898f02196bb8a", "cves": [], "html": "<p>Allow <code>pg_hba.conf</code> and <a href=\"/docs/14/auth-username-maps.html\" title=\"21.2.\u00a0User Name Maps\"><code>pg_ident.conf</code></a> records to span multiple lines (Fabien Coelho) <a href=\"https://postgr.es/c/8f8154a50\">\u00a7</a></p>\n<p>A backslash at the end of a line allows record contents to be continued on the next line.</p>", "text": "Allow pg_hba.conf and pg_ident.conf records to span multiple lines (Fabien Coelho) \u00a7 A backslash at the end of a line allows record contents to be continued on the next line.", "title": "Allow pg_hba.conf and pg_ident.conf records to span multiple lines", "commits": ["8f8154a50"], "section": "Server / Authentication", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.10", "source_hash": "26e2c1212b0732403e6d0731a857f5721961be2f7c01ff1036be107adc107d51", "section_path": ["Server", "Authentication"], "commit_groups": [["8f8154a50"]], "identity_text": "Allow pg_hba.conf and pg_ident.conf records to span multiple lines (Fabien Coelho) A backslash at the end of a line allows record contents to be continued on the next line.", "commit_aliases": ["8f8154a50"], "source_commits": ["8f8154a50"], "source_entry_id": "14.0/changes/056", "db_id": "f818227cf0f17db5c0fe8d6cfa77d40f", "patch_ids": ["dd66a7c38bdfdfde400bba38ad71f162"], "statement_hash": "8cfd700fddcd937778fd6826721b72ad0182acdcec017709ffae2cc5141e73ab", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-237898f02196bb8a", "migration": false}, {"id": "14.0-a521f76f7702c103", "cves": [], "html": "<p>Allow the specification of a certificate revocation list (<acronym>CRL</acronym>) directory (Kyotaro Horiguchi) <a href=\"https://postgr.es/c/f5465fade\">\u00a7</a></p>\n<p>This is controlled by server parameter <a href=\"/docs/14/runtime-config-connection.html#GUC-SSL-CRL-DIR\">ssl_crl_dir</a> and libpq connection option <a href=\"/docs/14/libpq-connect.html#LIBPQ-CONNECT-SSLCRLDIR\">sslcrldir</a>. Previously only single <acronym>CRL</acronym> files could be specified.</p>", "text": "Allow the specification of a certificate revocation list (CRL) directory (Kyotaro Horiguchi) \u00a7 This is controlled by server parameter ssl_crl_dir and libpq connection option sslcrldir. Previously only single CRL files could be specified.", "title": "Allow the specification of a certificate revocation list (CRL) directory", "commits": ["f5465fade"], "section": "Server / Authentication", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.10", "source_hash": "662cdae4226dd5698dd22a75234f56adc3d5bfd32c840656f1dec7c04900d1d8", "section_path": ["Server", "Authentication"], "commit_groups": [["f5465fade"]], "identity_text": "Allow the specification of a certificate revocation list (CRL) directory (Kyotaro Horiguchi) This is controlled by server parameter guc-ssl-crl-dir and libpq connection option libpq-connect-sslcrldir . Previously only single CRL files could be specified.", "commit_aliases": ["f5465fade"], "source_commits": ["f5465fade"], "source_entry_id": "14.0/changes/057", "db_id": "38e62967b96a0706d5328c0287145e0c", "patch_ids": ["103a80e0b7675377b70f76b86b558114"], "statement_hash": "e936bbc3f2b78889ddd12ad32d7f4b46174683374d387a7fb8c9559c7c036d1b", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-a521f76f7702c103", "migration": false}, {"id": "14.0-97cf0fcd86296419", "cves": [], "html": "<p>Allow passwords of an arbitrary length (Tom Lane, Nathan Bossart) <a href=\"https://postgr.es/c/67a472d71\">\u00a7</a></p>", "text": "Allow passwords of an arbitrary length (Tom Lane, Nathan Bossart) \u00a7", "title": "Allow passwords of an arbitrary length", "commits": ["67a472d71"], "section": "Server / Authentication", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.10", "source_hash": "306a788bc2cc3e1b44bcc751d072b51c9fe91588a095fc37dab0dab4df3dd92c", "section_path": ["Server", "Authentication"], "commit_groups": [["67a472d71"]], "identity_text": "Allow passwords of an arbitrary length (Tom Lane, Nathan Bossart)", "commit_aliases": ["67a472d71"], "source_commits": ["67a472d71"], "source_entry_id": "14.0/changes/058", "db_id": "2d7255a485b32c58a5cba18c5aeaccd5", "patch_ids": ["2e1740bc94260276595f457faf51a744"], "statement_hash": "fe06b90311edf99ba491d8bec8918caa008391925cc2f60e3a485047dd7c25ad", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-97cf0fcd86296419", "migration": false}, {"id": "14.0-95b1178c72f69c45", "cves": [], "html": "<p>Add server parameter <a href=\"/docs/14/runtime-config-client.html#GUC-IDLE-SESSION-TIMEOUT\">idle_session_timeout</a> to close idle sessions (Li Japin) <a href=\"https://postgr.es/c/9877374be\">\u00a7</a></p>\n<p>This is similar to <a href=\"/docs/14/runtime-config-client.html#GUC-IDLE-IN-TRANSACTION-SESSION-TIMEOUT\">idle_in_transaction_session_timeout</a>.</p>", "text": "Add server parameter idle_session_timeout to close idle sessions (Li Japin) \u00a7 This is similar to idle_in_transaction_session_timeout.", "title": "Add server parameter idle_session_timeout to close idle sessions", "commits": ["9877374be"], "section": "Server / Server Configuration", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.11", "source_hash": "ecef98c865094f1866dc2b79fdbd26948e0a82d2b02d2aedbbb7b55156b96852", "section_path": ["Server", "Server Configuration"], "commit_groups": [["9877374be"]], "identity_text": "Add server parameter guc-idle-session-timeout to close idle sessions (Li Japin) This is similar to guc-idle-in-transaction-session-timeout .", "commit_aliases": ["9877374be"], "source_commits": ["9877374be"], "source_entry_id": "14.0/changes/059", "db_id": "f4ac586aa4c2a2be3535c3e6ce4a4038", "patch_ids": ["1067c64265ae79e2abd7fee386ec2928"], "statement_hash": "20963487e9472e12544a80d4e9b425664c2930727af2f4725e7e0f2b96510f3a", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-95b1178c72f69c45", "migration": false}, {"id": "14.0-f463fda3413c236f", "cves": [], "html": "<p>Change <a href=\"/docs/14/runtime-config-wal.html#GUC-CHECKPOINT-COMPLETION-TARGET\">checkpoint_completion_target</a> default to 0.9 (Stephen Frost) <a href=\"https://postgr.es/c/bbcc4eb2e\">\u00a7</a></p>\n<p>The previous default was 0.5.</p>", "text": "Change checkpoint_completion_target default to 0.9 (Stephen Frost) \u00a7 The previous default was 0.5.", "title": "Change checkpoint_completion_target default to 0.9", "commits": ["bbcc4eb2e"], "section": "Server / Server Configuration", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.11", "source_hash": "d9281c3da88e4a2d91a11fb56f71c6990e6ba0d5231750b8c879b69c4d73a769", "section_path": ["Server", "Server Configuration"], "commit_groups": [["bbcc4eb2e"]], "identity_text": "Change guc-checkpoint-completion-target default to 0.9 (Stephen Frost) The previous default was 0.5.", "commit_aliases": ["bbcc4eb2e"], "source_commits": ["bbcc4eb2e"], "source_entry_id": "14.0/changes/060", "db_id": "d9203edbca1a7407642fc25d70e29d1d", "patch_ids": ["c2645b69754ba586669ff290e4e145c2"], "statement_hash": "121037b95e68ee531dfbd9000b6972c62e792814a8a3a0bbbc85da7131cc96fa", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-f463fda3413c236f", "migration": false}, {"id": "14.0-f48219934be680db", "cves": [], "html": "<p>Allow <code>%P</code> in <a href=\"/docs/14/runtime-config-logging.html#GUC-LOG-LINE-PREFIX\">log_line_prefix</a> to report the parallel group leader's PID for a parallel worker (Justin Pryzby) <a href=\"https://postgr.es/c/b8fdee7d0\">\u00a7</a></p>", "text": "Allow %P in log_line_prefix to report the parallel group leader's PID for a parallel worker (Justin Pryzby) \u00a7", "title": "Allow %P in log_line_prefix to report the parallel group leader's PID for a parallel worker", "commits": ["b8fdee7d0"], "section": "Server / Server Configuration", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.11", "source_hash": "0cd354a44885dd9064ef6ee6a5b47cd04a13d31ced24b0d4e82e9875a92fdb4c", "section_path": ["Server", "Server Configuration"], "commit_groups": [["b8fdee7d0"]], "identity_text": "Allow %P in guc-log-line-prefix to report the parallel group leader's PID for a parallel worker (Justin Pryzby)", "commit_aliases": ["b8fdee7d0"], "source_commits": ["b8fdee7d0"], "source_entry_id": "14.0/changes/061", "db_id": "2f04657cdf1d83599590a016d6776028", "patch_ids": ["9a709bd598aa718a8346e02f96485300"], "statement_hash": "1b5b81122ba4285ba6a5a0d9c2c1e6e9132b6b07e3dad45912c9c63405fc0c96", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-f48219934be680db", "migration": false}, {"id": "14.0-b9bffed64267878c", "cves": [], "html": "<p>Allow <a href=\"/docs/14/runtime-config-connection.html#GUC-UNIX-SOCKET-DIRECTORIES\">unix_socket_directories</a> to specify paths as individual, comma-separated quoted strings (Ian Lawrence Barwick) <a href=\"https://postgr.es/c/a05dbf477\">\u00a7</a></p>\n<p>Previously all the paths had to be in a single quoted string.</p>", "text": "Allow unix_socket_directories to specify paths as individual, comma-separated quoted strings (Ian Lawrence Barwick) \u00a7 Previously all the paths had to be in a single quoted string.", "title": "Allow unix_socket_directories to specify paths as individual, comma-separated quoted strings", "commits": ["a05dbf477"], "section": "Server / Server Configuration", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.11", "source_hash": "69b861d0ea2ae12736c1c32bb5abfc7c9e0bb64a367f103557b1da8086b3aef7", "section_path": ["Server", "Server Configuration"], "commit_groups": [["a05dbf477"]], "identity_text": "Allow guc-unix-socket-directories to specify paths as individual, comma-separated quoted strings (Ian Lawrence Barwick) Previously all the paths had to be in a single quoted string.", "commit_aliases": ["a05dbf477"], "source_commits": ["a05dbf477"], "source_entry_id": "14.0/changes/062", "db_id": "de551dbe6bc7c25bf654175a24267d22", "patch_ids": ["9ce0280978d0930cfb1037860b5eabde"], "statement_hash": "0de46eae250db545b682defd060fe224346184d9d66fe9199f39b83c60694a93", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-b9bffed64267878c", "migration": false}, {"id": "14.0-1956a63f3aa4e034", "cves": [], "html": "<p>Allow startup allocation of dynamic shared memory (Thomas Munro) <a href=\"https://postgr.es/c/84b1c63ad\">\u00a7</a></p>\n<p>This is controlled by <a href=\"/docs/14/runtime-config-resource.html#GUC-MIN-DYNAMIC-SHARED-MEMORY\">min_dynamic_shared_memory</a>. This allows more use of huge pages.</p>", "text": "Allow startup allocation of dynamic shared memory (Thomas Munro) \u00a7 This is controlled by min_dynamic_shared_memory. This allows more use of huge pages.", "title": "Allow startup allocation of dynamic shared memory", "commits": ["84b1c63ad"], "section": "Server / Server Configuration", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.11", "source_hash": "8a600082bfec594166a48274bc8bfe409030b88a903ab6cd0f009470750625d8", "section_path": ["Server", "Server Configuration"], "commit_groups": [["84b1c63ad"]], "identity_text": "Allow startup allocation of dynamic shared memory (Thomas Munro) This is controlled by guc-min-dynamic-shared-memory . This allows more use of huge pages.", "commit_aliases": ["84b1c63ad"], "source_commits": ["84b1c63ad"], "source_entry_id": "14.0/changes/063", "db_id": "a8b54a702c3d8c69ce1dd2b246288331", "patch_ids": ["272304db9fcb1261b35aa1b17d283ce0"], "statement_hash": "04b2c9d1d7a159148a0029030f5230d92ed0ca6fadb58d6a85ed9f4d7ca6504b", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-1956a63f3aa4e034", "migration": false}, {"id": "14.0-b3352966511f3ae3", "cves": [], "html": "<p>Add server parameter <a href=\"/docs/14/runtime-config-resource.html#GUC-HUGE-PAGE-SIZE\">huge_page_size</a> to control the size of huge pages used on Linux (Odin Ugedal) <a href=\"https://postgr.es/c/d2bddc250\">\u00a7</a></p>", "text": "Add server parameter huge_page_size to control the size of huge pages used on Linux (Odin Ugedal) \u00a7", "title": "Add server parameter huge_page_size to control the size of huge pages used on Linux", "commits": ["d2bddc250"], "section": "Server / Server Configuration", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.3.11", "source_hash": "94bde3f44f9afa04b1060bc2c217aa919709bc3428a5665407262643a4c3630c", "section_path": ["Server", "Server Configuration"], "commit_groups": [["d2bddc250"]], "identity_text": "Add server parameter guc-huge-page-size to control the size of huge pages used on Linux (Odin Ugedal)", "commit_aliases": ["d2bddc250"], "source_commits": ["d2bddc250"], "source_entry_id": "14.0/changes/064", "db_id": "ba8bb9eccebc8bd5781504c2b326972c", "patch_ids": ["1a705b5c20cd45034f2dde4aeeeec500"], "statement_hash": "7bd08c6982d5fad20ce8bf912ec2584ed37c2730ce01265de88a0498acc2d5a4", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-b3352966511f3ae3", "migration": false}, {"id": "14.0-eeb3866c17e6de32", "cves": [], "html": "<p>Allow standby servers to be rewound via <a href=\"/docs/14/app-pgrewind.html\" title=\"pg_rewind\"><span>pg_rewind</span></a> (Heikki Linnakangas) <a href=\"https://postgr.es/c/9c4f5192f\">\u00a7</a></p>", "text": "Allow standby servers to be rewound via pg_rewind (Heikki Linnakangas) \u00a7", "title": "Allow standby servers to be rewound via pg_rewind", "commits": ["9c4f5192f"], "section": "Streaming Replication and Recovery", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.4", "source_hash": "ca5f148cb1da266c003c0cfaed90617aafb2cd8b74eaeb74885982cb378259a9", "section_path": ["Streaming Replication and Recovery"], "commit_groups": [["9c4f5192f"]], "identity_text": "Allow standby servers to be rewound via pg_rewind (Heikki Linnakangas)", "commit_aliases": ["9c4f5192f"], "source_commits": ["9c4f5192f"], "source_entry_id": "14.0/changes/065", "db_id": "9d9e8aa4ea26bd1d2e95e151339985d8", "patch_ids": ["19fba2bac6e8cfefa619214b1033f5f7"], "statement_hash": "290b1ad9731d8380bec6eb3cf31cf1a03db99a90757ef04f72105db51c22c060", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-eeb3866c17e6de32", "migration": false}, {"id": "14.0-fdd593f4454f54e4", "cves": [], "html": "<p>Allow the <a href=\"/docs/14/runtime-config-wal.html#GUC-RESTORE-COMMAND\">restore_command</a> setting to be changed during a server reload (Sergei Kornilov) <a href=\"https://postgr.es/c/942305a36\">\u00a7</a></p>\n<p>You can also set <code>restore_command</code> to an empty string and reload to force recovery to only read from the <a href=\"/docs/14/storage-file-layout.html\" title=\"70.1.\u00a0Database File Layout\"><code>pg_wal</code></a> directory.</p>", "text": "Allow the restore_command setting to be changed during a server reload (Sergei Kornilov) \u00a7 You can also set restore_command to an empty string and reload to force recovery to only read from the pg_wal directory.", "title": "Allow the restore_command setting to be changed during a server reload", "commits": ["942305a36"], "section": "Streaming Replication and Recovery", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.4", "source_hash": "487f93887a3da2f12423c8aa8d638f18e31198778dc25bced4f1b3dd3876c8b2", "section_path": ["Streaming Replication and Recovery"], "commit_groups": [["942305a36"]], "identity_text": "Allow the guc-restore-command setting to be changed during a server reload (Sergei Kornilov) You can also set restore_command to an empty string and reload to force recovery to only read from the pg_wal directory.", "commit_aliases": ["942305a36"], "source_commits": ["942305a36"], "source_entry_id": "14.0/changes/066", "db_id": "138b84f4b9a64bbb475aac9c6d48f3ec", "patch_ids": ["b98b5f14dab2cf9741e5bba2592fef2d"], "statement_hash": "235cdd8803d4b65a3f52972a76a70cd74c93c7ccd9deff769473fd8419911909", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-fdd593f4454f54e4", "migration": false}, {"id": "14.0-c6fb2ae60691c941", "cves": [], "html": "<p>Add server parameter <a href=\"/docs/14/runtime-config-logging.html#GUC-LOG-RECOVERY-CONFLICT-WAITS\">log_recovery_conflict_waits</a> to report long recovery conflict wait times (Bertrand Drouvot, Masahiko Sawada) <a href=\"https://postgr.es/c/0650ff230\">\u00a7</a> <a href=\"https://postgr.es/c/39b03690b\">\u00a7</a></p>", "text": "Add server parameter log_recovery_conflict_waits to report long recovery conflict wait times (Bertrand Drouvot, Masahiko Sawada) \u00a7 \u00a7", "title": "Add server parameter log_recovery_conflict_waits to report long recovery conflict wait times", "commits": ["0650ff230", "39b03690b"], "section": "Streaming Replication and Recovery", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.4", "source_hash": "172b73d78559a5ac937d31d61f9208eec117072432af211872d5302a83cc97e7", "section_path": ["Streaming Replication and Recovery"], "commit_groups": [["0650ff230"], ["39b03690b"]], "identity_text": "Add server parameter guc-log-recovery-conflict-waits to report long recovery conflict wait times (Bertrand Drouvot, Masahiko Sawada)", "commit_aliases": ["0650ff230", "39b03690b"], "source_commits": ["0650ff230", "39b03690b"], "source_entry_id": "14.0/changes/067", "db_id": "dc710711dabbbfa20d66635351f3c8b2", "patch_ids": ["3d92a7a0304db7e3277a78e2d24be69a", "b110e03039bbeec65b6603115cd4346a"], "statement_hash": "a8ee92128511be5b80820615b13f7ab5888fe02c5c600baecf6f3e3072c08bbe", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-c6fb2ae60691c941", "migration": false}, {"id": "14.0-96645ad917754fd9", "cves": [], "html": "<p>Pause recovery on a hot standby server if the primary changes its parameters in a way that prevents replay on the standby (Peter Eisentraut) <a href=\"https://postgr.es/c/15251c0a6\">\u00a7</a></p>\n<p>Previously the standby would shut down immediately.</p>", "text": "Pause recovery on a hot standby server if the primary changes its parameters in a way that prevents replay on the standby (Peter Eisentraut) \u00a7 Previously the standby would shut down immediately.", "title": "Pause recovery on a hot standby server if the primary changes its parameters in a way that prevents replay on the standby", "commits": ["15251c0a6"], "section": "Streaming Replication and Recovery", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.4", "source_hash": "ca3a88a2d2a58e8baab9cf8d6ad69ac06d8fe4c19092d9c7880189d087ad7400", "section_path": ["Streaming Replication and Recovery"], "commit_groups": [["15251c0a6"]], "identity_text": "Pause recovery on a hot standby server if the primary changes its parameters in a way that prevents replay on the standby (Peter Eisentraut) Previously the standby would shut down immediately.", "commit_aliases": ["15251c0a6"], "source_commits": ["15251c0a6"], "source_entry_id": "14.0/changes/068", "db_id": "6163138ab30195ee21c530e93e56d269", "patch_ids": ["2a5e7a81e21fd777c4843b20df10de93"], "statement_hash": "bcf835975837698158bc618a4514b38f195f7734f5e6b2cbaad88e8c13071bb1", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-96645ad917754fd9", "migration": false}, {"id": "14.0-2dbea23372be3180", "cves": [], "html": "<p>Add function <a href=\"/docs/14/functions-admin.html#FUNCTIONS-RECOVERY-CONTROL\" title=\"9.27.4.\u00a0Recovery Control Functions\"><code>pg_get_wal_replay_pause_state()</code></a> to report the recovery state (Dilip Kumar) <a href=\"https://postgr.es/c/32fd2b57d\">\u00a7</a></p>\n<p>It gives more detailed information than <a href=\"/docs/14/functions-admin.html#FUNCTIONS-RECOVERY-CONTROL\" title=\"9.27.4.\u00a0Recovery Control Functions\"><code>pg_is_wal_replay_paused()</code></a>, which still exists.</p>", "text": "Add function pg_get_wal_replay_pause_state() to report the recovery state (Dilip Kumar) \u00a7 It gives more detailed information than pg_is_wal_replay_paused(), which still exists.", "title": "Add function pg_get_wal_replay_pause_state() to report the recovery state", "commits": ["32fd2b57d"], "section": "Streaming Replication and Recovery", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.4", "source_hash": "34ef2d8933c381de2c57318c3f5bc1c9cb4543483030db9929da4b1597ced74e", "section_path": ["Streaming Replication and Recovery"], "commit_groups": [["32fd2b57d"]], "identity_text": "Add function pg_get_wal_replay_pause_state() to report the recovery state (Dilip Kumar) It gives more detailed information than pg_is_wal_replay_paused(), which still exists.", "commit_aliases": ["32fd2b57d"], "source_commits": ["32fd2b57d"], "source_entry_id": "14.0/changes/069", "db_id": "11a86f0f8311e23950ca8e4394d9b7ba", "patch_ids": ["51dc9061f36ea1d58a269f6798c745c3"], "statement_hash": "b3c90ade75dd3224eaa7b32a0d33117dc4ac2b45f792c09b9d8aba62f92640e0", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-2dbea23372be3180", "migration": false}, {"id": "14.0-eac4e952ba957297", "cves": [], "html": "<p>Add new read-only server parameter <a href=\"/docs/14/runtime-config-preset.html#GUC-IN-HOT-STANDBY\">in_hot_standby</a> (Haribabu Kommi, Greg Nancarrow, Tom Lane) <a href=\"https://postgr.es/c/bf8a662c9\">\u00a7</a></p>\n<p>This allows clients to easily detect whether they are connected to a hot standby server.</p>", "text": "Add new read-only server parameter in_hot_standby (Haribabu Kommi, Greg Nancarrow, Tom Lane) \u00a7 This allows clients to easily detect whether they are connected to a hot standby server.", "title": "Add new read-only server parameter in_hot_standby", "commits": ["bf8a662c9"], "section": "Streaming Replication and Recovery", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.4", "source_hash": "3c7e4371abc38207681079de7762d9065a24818e175cc3bb3c6007b936a50b42", "section_path": ["Streaming Replication and Recovery"], "commit_groups": [["bf8a662c9"]], "identity_text": "Add new read-only server parameter guc-in-hot-standby (Haribabu Kommi, Greg Nancarrow, Tom Lane) This allows clients to easily detect whether they are connected to a hot standby server.", "commit_aliases": ["bf8a662c9"], "source_commits": ["bf8a662c9"], "source_entry_id": "14.0/changes/070", "db_id": "c91622c9f69dc46456cfe75fcdb9e8d6", "patch_ids": ["79d3832fcea245effcb09c45dd98961c"], "statement_hash": "eaf7d20d5e6e7904b660e9bc4a80bc00da21bcd90be6a4f4c1c2d38771d80340", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-eac4e952ba957297", "migration": false}, {"id": "14.0-95517b6f12d3c094", "cves": [], "html": "<p>Speed truncation of small tables during recovery on clusters with a large number of shared buffers (Kirk Jamison) <a href=\"https://postgr.es/c/d6ad34f34\">\u00a7</a></p>", "text": "Speed truncation of small tables during recovery on clusters with a large number of shared buffers (Kirk Jamison) \u00a7", "title": "Speed truncation of small tables during recovery on clusters with a large number of shared buffers", "commits": ["d6ad34f34"], "section": "Streaming Replication and Recovery", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.4", "source_hash": "fa351c5bc4941b293b7715d7485fa40cb726a04910fb799072dd41f1a7232dec", "section_path": ["Streaming Replication and Recovery"], "commit_groups": [["d6ad34f34"]], "identity_text": "Speed truncation of small tables during recovery on clusters with a large number of shared buffers (Kirk Jamison)", "commit_aliases": ["d6ad34f34"], "source_commits": ["d6ad34f34"], "source_entry_id": "14.0/changes/071", "db_id": "0e485b818fec3ba8c53429c1afd999e3", "patch_ids": ["a807966e7e2457e7d8d80a2ffcbc88ee"], "statement_hash": "7f8feb5af257af39660e5f865912cd53159a17b5250a1c473c4eb6753a3a1360", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-95517b6f12d3c094", "migration": false}, {"id": "14.0-08ac7df3f1ee75c5", "cves": [], "html": "<p>Allow file system sync at the start of crash recovery on Linux (Thomas Munro) <a href=\"https://postgr.es/c/61752afb2\">\u00a7</a></p>\n<p>By default, <span>PostgreSQL</span> opens and fsyncs each data file in the database cluster at the start of crash recovery. A new setting, <a href=\"/docs/14/runtime-config-error-handling.html#GUC-RECOVERY-INIT-SYNC-METHOD\">recovery_init_sync_method</a><code>=syncfs</code>, instead syncs each filesystem used by the cluster. This allows for faster recovery on systems with many database files.</p>", "text": "Allow file system sync at the start of crash recovery on Linux (Thomas Munro) \u00a7 By default, PostgreSQL opens and fsyncs each data file in the database cluster at the start of crash recovery. A new setting, recovery_init_sync_method=syncfs, instead syncs each filesystem used by the cluster. This allows for faster recovery on systems with many database files.", "title": "Allow file system sync at the start of crash recovery on Linux", "commits": ["61752afb2"], "section": "Streaming Replication and Recovery", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.4", "source_hash": "95ef0a44d1a097d55625b6e97e95216319a4f8829df4bc9401a0bce428015601", "section_path": ["Streaming Replication and Recovery"], "commit_groups": [["61752afb2"]], "identity_text": "Allow file system sync at the start of crash recovery on Linux (Thomas Munro) By default, PostgreSQL opens and fsyncs each data file in the database cluster at the start of crash recovery. A new setting, guc-recovery-init-sync-method =syncfs, instead syncs each filesystem used by the cluster. This allows for faster recovery on systems with many database files.", "commit_aliases": ["61752afb2"], "source_commits": ["61752afb2"], "source_entry_id": "14.0/changes/072", "db_id": "79e172b4f02e73f18c3e63d8aa7f5333", "patch_ids": ["184371764fdad7a08da674e1281700f2"], "statement_hash": "5432eff6c9830aba4bc3fd963fed7a4c097b815a0c0a0138152f4dd3da9edf4c", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-08ac7df3f1ee75c5", "migration": false}, {"id": "14.0-a159028e54d161db-1", "cves": [], "html": "<p>Add function <a href=\"/docs/14/functions-info.html\" title=\"9.26.\u00a0System Information Functions and Operators\"><code>pg_xact_commit_timestamp_origin()</code></a> to return the commit timestamp and replication origin of the specified transaction (Movead Li) <a href=\"https://postgr.es/c/b1e48bbe6\">\u00a7</a></p>", "text": "Add function pg_xact_commit_timestamp_origin() to return the commit timestamp and replication origin of the specified transaction (Movead Li) \u00a7", "title": "Add function pg_xact_commit_timestamp_origin() to return the commit timestamp and replication origin of the specified transaction", "commits": ["b1e48bbe6"], "section": "Streaming Replication and Recovery", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.4", "source_hash": "fb8c5cc86ef3de661e8527010ba938f991e62640050444eae6377b148e5c14a4", "section_path": ["Streaming Replication and Recovery"], "commit_groups": [["b1e48bbe6"]], "identity_text": "Add function pg_xact_commit_timestamp_origin() to return the commit timestamp and replication origin of the specified transaction (Movead Li)", "commit_aliases": ["b1e48bbe6"], "source_commits": ["b1e48bbe6"], "source_entry_id": "14.0/changes/073", "db_id": "f844229d4635e67fac6dddf2f4b4a54c", "patch_ids": ["0dd136743c3ca2e7816c5c325cf2c8f9"], "statement_hash": "c097024c282ad5d78d8cbc8724f77d5cd0f8ed4de2d0b1b362ada83eccf260c2", "relations": [{"rule": 2, "type": "related", "target": "ea2baac664953d33e5a1823e19ddf662", "evidence": {"same_day": true, "patch_ids": ["0dd136743c3ca2e7816c5c325cf2c8f9"], "ambiguous_patch_ids": ["0dd136743c3ca2e7816c5c325cf2c8f9"]}}], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-a159028e54d161db-1", "migration": false}, {"id": "14.0-a159028e54d161db-2", "cves": [], "html": "<p>Add the replication origin to the record returned by <a href=\"/docs/14/functions-info.html\" title=\"9.26.\u00a0System Information Functions and Operators\"><code>pg_last_committed_xact()</code></a> (Movead Li) <a href=\"https://postgr.es/c/b1e48bbe6\">\u00a7</a></p>", "text": "Add the replication origin to the record returned by pg_last_committed_xact() (Movead Li) \u00a7", "title": "Add the replication origin to the record returned by pg_last_committed_xact()", "commits": ["b1e48bbe6"], "section": "Streaming Replication and Recovery", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.4", "source_hash": "b2625fdd8246cf1664a43babb81d1e34c38f811909ab1b44085305ec2f4e2052", "section_path": ["Streaming Replication and Recovery"], "commit_groups": [["b1e48bbe6"]], "identity_text": "Add the replication origin to the record returned by pg_last_committed_xact() (Movead Li)", "commit_aliases": ["b1e48bbe6"], "source_commits": ["b1e48bbe6"], "source_entry_id": "14.0/changes/074", "db_id": "ea2baac664953d33e5a1823e19ddf662", "patch_ids": ["0dd136743c3ca2e7816c5c325cf2c8f9"], "statement_hash": "ded13f05e3583653e565da60d9522781a003cd4e4d1b27c7f2eada4cd66362bd", "relations": [{"rule": 2, "type": "related", "target": "f844229d4635e67fac6dddf2f4b4a54c", "evidence": {"same_day": true, "patch_ids": ["0dd136743c3ca2e7816c5c325cf2c8f9"], "ambiguous_patch_ids": ["0dd136743c3ca2e7816c5c325cf2c8f9"]}}], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-a159028e54d161db-2", "migration": false}, {"id": "14.0-efaa0a862d0e5846", "cves": [], "html": "<p>Allow replication <a href=\"/docs/14/functions-admin.html#FUNCTIONS-REPLICATION\" title=\"9.27.6.\u00a0Replication Management Functions\">origin functions</a> to be controlled using standard function permission controls (Mart\u00edn Marqu\u00e9s) <a href=\"https://postgr.es/c/cc072641d\">\u00a7</a></p>\n<p>Previously these functions could only be executed by superusers, and this is still the default.</p>", "text": "Allow replication origin functions to be controlled using standard function permission controls (Mart\u00edn Marqu\u00e9s) \u00a7 Previously these functions could only be executed by superusers, and this is still the default.", "title": "Allow replication origin functions to be controlled using standard function permission controls", "commits": ["cc072641d"], "section": "Streaming Replication and Recovery", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.4", "source_hash": "cb1db309d6cc792dd79e8f34e873072934e33157035c63c0a7883a2be4494aad", "section_path": ["Streaming Replication and Recovery"], "commit_groups": [["cc072641d"]], "identity_text": "Allow replication origin functions to be controlled using standard function permission controls (Mart\u00edn Marqu\u00e9s) Previously these functions could only be executed by superusers, and this is still the default.", "commit_aliases": ["cc072641d"], "source_commits": ["cc072641d"], "source_entry_id": "14.0/changes/075", "db_id": "ceb5d5cbc8f5808c011b50d0cb4b4a0f", "patch_ids": ["3d6bd3393a3c675414ce82b9e93cb708"], "statement_hash": "fafee7cb7779520f9fee0a29c2fa40970b885a702b6f8747d0c4ed95e12ef4f4", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-efaa0a862d0e5846", "migration": false}, {"id": "14.0-c66d0e0bd794d444-1", "cves": [], "html": "<p>Allow logical replication to stream long in-progress transactions to subscribers (Dilip Kumar, Amit Kapila, Ajin Cherian, Tomas Vondra, Nikhil Sontakke, Stas Kelvich) <a href=\"https://postgr.es/c/464824323\">\u00a7</a> <a href=\"https://postgr.es/c/0aa8a01d0\">\u00a7</a> <a href=\"https://postgr.es/c/a271a1b50\">\u00a7</a> <a href=\"https://postgr.es/c/7259736a6\">\u00a7</a></p>\n<p>Previously transactions that exceeded <a href=\"/docs/14/runtime-config-resource.html#GUC-LOGICAL-DECODING-WORK-MEM\">logical_decoding_work_mem</a> were written to disk until the transaction completed.</p>", "text": "Allow logical replication to stream long in-progress transactions to subscribers (Dilip Kumar, Amit Kapila, Ajin Cherian, Tomas Vondra, Nikhil Sontakke, Stas Kelvich) \u00a7 \u00a7 \u00a7 \u00a7 Previously transactions that exceeded logical_decoding_work_mem were written to disk until the transaction completed.", "title": "Allow logical replication to stream long in-progress transactions to subscribers", "commits": ["0aa8a01d0", "464824323", "7259736a6", "a271a1b50"], "section": "Streaming Replication and Recovery / Logical Replication", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.4.3", "source_hash": "bf1ae731fae9fcfe6360c2404bede617e7aed2d32053177f2c26ee50ff629ee9", "section_path": ["Streaming Replication and Recovery", "Logical Replication"], "commit_groups": [["0aa8a01d0"], ["464824323"], ["7259736a6"], ["a271a1b50"]], "identity_text": "Allow logical replication to stream long in-progress transactions to subscribers (Dilip Kumar, Amit Kapila, Ajin Cherian, Tomas Vondra, Nikhil Sontakke, Stas Kelvich) Previously transactions that exceeded guc-logical-decoding-work-mem were written to disk until the transaction completed.", "commit_aliases": ["0aa8a01d0", "464824323", "7259736a6", "a271a1b50"], "source_commits": ["0aa8a01d0", "464824323", "7259736a6", "a271a1b50"], "source_entry_id": "14.0/changes/076", "db_id": "ed2a4b5d3d88acd9537ef887e18885f9", "patch_ids": ["128081d0784e7fb08e92a03832880b61", "1a9c704b271a19a6ed92eb7f1d9dfe03", "1bdec66d000485a0cc39f42a2c8308de", "346e850dc542e70969275761e990c090"], "statement_hash": "9795e756faa55f6375ddbaba1e9568e097a7ae41883e96dca6f346d4b7bd8b64", "relations": [{"rule": 2, "type": "related", "target": "ba88ee46083cd824045f005cb46d412a", "evidence": {"same_day": true, "patch_ids": ["128081d0784e7fb08e92a03832880b61", "346e850dc542e70969275761e990c090"], "ambiguous_patch_ids": ["128081d0784e7fb08e92a03832880b61", "346e850dc542e70969275761e990c090"]}}], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-c66d0e0bd794d444-1", "migration": false}, {"id": "14.0-317668cab4378697", "cves": [], "html": "<p>Enhance the logical replication <acronym>API</acronym> to allow streaming large in-progress transactions (Tomas Vondra, Dilip Kumar, Amit Kapila) <a href=\"https://postgr.es/c/45fdc9738\">\u00a7</a></p>\n<p>The output functions begin with <a href=\"/docs/14/logicaldecoding-output-plugin.html#LOGICALDECODING-OUTPUT-PLUGIN-STREAM-START\" title=\"49.6.4.14.\u00a0Stream Start Callback\"><code>stream</code></a>. <span>test_decoding</span> also supports these.</p>", "text": "Enhance the logical replication API to allow streaming large in-progress transactions (Tomas Vondra, Dilip Kumar, Amit Kapila) \u00a7 The output functions begin with stream. test_decoding also supports these.", "title": "Enhance the logical replication API to allow streaming large in-progress transactions", "commits": ["45fdc9738"], "section": "Streaming Replication and Recovery / Logical Replication", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.4.3", "source_hash": "a04bcd058a32067b235fd36e3927e5ba7f9052d2e94e08d2236236e751004784", "section_path": ["Streaming Replication and Recovery", "Logical Replication"], "commit_groups": [["45fdc9738"]], "identity_text": "Enhance the logical replication API to allow streaming large in-progress transactions (Tomas Vondra, Dilip Kumar, Amit Kapila) The output functions begin with stream. test_decoding also supports these.", "commit_aliases": ["45fdc9738"], "source_commits": ["45fdc9738"], "source_entry_id": "14.0/changes/077", "db_id": "e40cf6f3874d66a949ae91868fe57ddc", "patch_ids": ["d88c507fa5159e36f70b0ddfe905b9ab"], "statement_hash": "a7dbb30d77b8bbb872ea5bd0941b2aa85fcbeaf8222b42ac0f5e6b82e8e34570", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-317668cab4378697", "migration": false}, {"id": "14.0-18828cda4d8a27ba", "cves": [], "html": "<p>Allow multiple transactions during table sync in logical replication (Peter Smith, Amit Kapila, Takamichi Osumi) <a href=\"https://postgr.es/c/ce0fdbfe9\">\u00a7</a></p>", "text": "Allow multiple transactions during table sync in logical replication (Peter Smith, Amit Kapila, Takamichi Osumi) \u00a7", "title": "Allow multiple transactions during table sync in logical replication", "commits": ["ce0fdbfe9"], "section": "Streaming Replication and Recovery / Logical Replication", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.4.3", "source_hash": "5a324e467c84dfd5c3b6c14f857110ca5808f9746fe5e4b696786fe0382ec597", "section_path": ["Streaming Replication and Recovery", "Logical Replication"], "commit_groups": [["ce0fdbfe9"]], "identity_text": "Allow multiple transactions during table sync in logical replication (Peter Smith, Amit Kapila, Takamichi Osumi)", "commit_aliases": ["ce0fdbfe9"], "source_commits": ["ce0fdbfe9"], "source_entry_id": "14.0/changes/078", "db_id": "498ea8bd63d4699e204c45232202b675", "patch_ids": ["0cc54d943d75ca7bc61005257afacf57"], "statement_hash": "539bb73ab54d7e0281cf5b8cc1dc58c11e367d76ac322f9927a3d7cbf4cf17e9", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-18828cda4d8a27ba", "migration": false}, {"id": "14.0-217a0bac653aedf5", "cves": [], "html": "<p>Immediately <acronym>WAL</acronym>-log subtransaction and top-level <code>XID</code> association (Tomas Vondra, Dilip Kumar, Amit Kapila) <a href=\"https://postgr.es/c/0bead9af4\">\u00a7</a></p>\n<p>This is useful for logical decoding.</p>", "text": "Immediately WAL-log subtransaction and top-level XID association (Tomas Vondra, Dilip Kumar, Amit Kapila) \u00a7 This is useful for logical decoding.", "title": "Immediately WAL-log subtransaction and top-level XID association", "commits": ["0bead9af4"], "section": "Streaming Replication and Recovery / Logical Replication", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.4.3", "source_hash": "de232b0f49f7400c476fef9fa66c9f4a8d4e443f6fd56639bda5de432c66f1c8", "section_path": ["Streaming Replication and Recovery", "Logical Replication"], "commit_groups": [["0bead9af4"]], "identity_text": "Immediately WAL-log subtransaction and top-level XID association (Tomas Vondra, Dilip Kumar, Amit Kapila) This is useful for logical decoding.", "commit_aliases": ["0bead9af4"], "source_commits": ["0bead9af4"], "source_entry_id": "14.0/changes/079", "db_id": "7a56a9ea7ea413d9fe1f47e4a0f93450", "patch_ids": ["c7174dda652535e7be7803c31abe88e9"], "statement_hash": "e099d8072927af263bd9d55f9670a23558d35bc25ee0c1808559acc1081b4b15", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-217a0bac653aedf5", "migration": false}, {"id": "14.0-c66d0e0bd794d444-2", "cves": [], "html": "<p>Enhance logical decoding APIs to handle two-phase commits (Ajin Cherian, Amit Kapila, Nikhil Sontakke, Stas Kelvich) <a href=\"https://postgr.es/c/0aa8a01d0\">\u00a7</a> <a href=\"https://postgr.es/c/a271a1b50\">\u00a7</a> <a href=\"https://postgr.es/c/19890a064\">\u00a7</a></p>\n<p>This is controlled via <a href=\"/docs/14/functions-admin.html#FUNCTIONS-REPLICATION\" title=\"9.27.6.\u00a0Replication Management Functions\"><code>pg_create_logical_replication_slot()</code></a>.</p>", "text": "Enhance logical decoding APIs to handle two-phase commits (Ajin Cherian, Amit Kapila, Nikhil Sontakke, Stas Kelvich) \u00a7 \u00a7 \u00a7 This is controlled via pg_create_logical_replication_slot().", "title": "Enhance logical decoding APIs to handle two-phase commits", "commits": ["0aa8a01d0", "19890a064", "a271a1b50"], "section": "Streaming Replication and Recovery / Logical Replication", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.4.3", "source_hash": "56151c3399c0dc98533a4552e86dbfe120cfaa68756e363349f3ed7e84bd20d3", "section_path": ["Streaming Replication and Recovery", "Logical Replication"], "commit_groups": [["0aa8a01d0"], ["19890a064"], ["a271a1b50"]], "identity_text": "Enhance logical decoding APIs to handle two-phase commits (Ajin Cherian, Amit Kapila, Nikhil Sontakke, Stas Kelvich) This is controlled via pg_create_logical_replication_slot().", "commit_aliases": ["0aa8a01d0", "19890a064", "a271a1b50"], "source_commits": ["0aa8a01d0", "19890a064", "a271a1b50"], "source_entry_id": "14.0/changes/080", "db_id": "ba88ee46083cd824045f005cb46d412a", "patch_ids": ["128081d0784e7fb08e92a03832880b61", "346e850dc542e70969275761e990c090", "38f1b6a10d83a9a369000015b80ff89e"], "statement_hash": "fb9a4ff62ffaf2abdf203726c09230f8354500ff026ac1b6f2f81c62c3a77f63", "relations": [{"rule": 2, "type": "related", "target": "ed2a4b5d3d88acd9537ef887e18885f9", "evidence": {"same_day": true, "patch_ids": ["128081d0784e7fb08e92a03832880b61", "346e850dc542e70969275761e990c090"], "ambiguous_patch_ids": ["128081d0784e7fb08e92a03832880b61", "346e850dc542e70969275761e990c090"]}}], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-c66d0e0bd794d444-2", "migration": false}, {"id": "14.0-8830941211ed8a4b", "cves": [], "html": "<p>Add cache invalidation messages to the <acronym>WAL</acronym> during command completion when using logical replication (Dilip Kumar, Tomas Vondra, Amit Kapila) <a href=\"https://postgr.es/c/c55040ccd\">\u00a7</a></p>\n<p>This allows logical streaming of in-progress transactions. When logical replication is disabled, invalidation messages are generated only at transaction completion.</p>", "text": "Add cache invalidation messages to the WAL during command completion when using logical replication (Dilip Kumar, Tomas Vondra, Amit Kapila) \u00a7 This allows logical streaming of in-progress transactions. When logical replication is disabled, invalidation messages are generated only at transaction completion.", "title": "Add cache invalidation messages to the WAL during command completion when using logical replication", "commits": ["c55040ccd"], "section": "Streaming Replication and Recovery / Logical Replication", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.4.3", "source_hash": "90dc4bb2299c0e090660e42b85e3c12264cfe8d8c1db9e0352d26daac4f61e8f", "section_path": ["Streaming Replication and Recovery", "Logical Replication"], "commit_groups": [["c55040ccd"]], "identity_text": "Add cache invalidation messages to the WAL during command completion when using logical replication (Dilip Kumar, Tomas Vondra, Amit Kapila) This allows logical streaming of in-progress transactions. When logical replication is disabled, invalidation messages are generated only at transaction completion.", "commit_aliases": ["c55040ccd"], "source_commits": ["c55040ccd"], "source_entry_id": "14.0/changes/081", "db_id": "5cfafb294b842d8330ddcb90f614e903", "patch_ids": ["589a9d3e9f8cb2dc6e62330d3bc63733"], "statement_hash": "faa081b7b70b7c8db8bea86b4eb13bab3d42a0ec9b07723fbbe6a1c29a82a49f", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-8830941211ed8a4b", "migration": false}, {"id": "14.0-811d339b6f94f8d1", "cves": [], "html": "<p>Allow logical decoding to more efficiently process cache invalidation messages (Dilip Kumar) <a href=\"https://postgr.es/c/d7eb52d71\">\u00a7</a></p>\n<p>This allows <a href=\"/docs/14/logicaldecoding.html\" title=\"Chapter\u00a049.\u00a0Logical Decoding\">logical decoding</a> to work efficiently in presence of a large amount of <acronym>DDL</acronym>.</p>", "text": "Allow logical decoding to more efficiently process cache invalidation messages (Dilip Kumar) \u00a7 This allows logical decoding to work efficiently in presence of a large amount of DDL.", "title": "Allow logical decoding to more efficiently process cache invalidation messages", "commits": ["d7eb52d71"], "section": "Streaming Replication and Recovery / Logical Replication", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.4.3", "source_hash": "d7723ad8c030f42ad00566c993f577f6b2f096c7ec5b2a78bc09d32f0023efce", "section_path": ["Streaming Replication and Recovery", "Logical Replication"], "commit_groups": [["d7eb52d71"]], "identity_text": "Allow logical decoding to more efficiently process cache invalidation messages (Dilip Kumar) This allows logical decoding to work efficiently in presence of a large amount of DDL.", "commit_aliases": ["d7eb52d71"], "source_commits": ["d7eb52d71"], "source_entry_id": "14.0/changes/082", "db_id": "c69b3d9bca563b270e526dc6d4812fa9", "patch_ids": ["44b841b5933ed3318990abc91ff3609a"], "statement_hash": "612de7477a8339ef1bb7c88a490c2e0ba7cdd987d5e42a4a0c234822e869e40b", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-811d339b6f94f8d1", "migration": false}, {"id": "14.0-5e5b3d3c528f329f", "cves": [], "html": "<p>Allow control over whether logical decoding messages are sent to the replication stream (David Pirotte, Euler Taveira) <a href=\"https://postgr.es/c/ac4645c01\">\u00a7</a></p>", "text": "Allow control over whether logical decoding messages are sent to the replication stream (David Pirotte, Euler Taveira) \u00a7", "title": "Allow control over whether logical decoding messages are sent to the replication stream", "commits": ["ac4645c01"], "section": "Streaming Replication and Recovery / Logical Replication", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.4.3", "source_hash": "3ef9dd635cf35b19fcc744eab16bfaea8f25eadead55cc13020bbf84a5f5af38", "section_path": ["Streaming Replication and Recovery", "Logical Replication"], "commit_groups": [["ac4645c01"]], "identity_text": "Allow control over whether logical decoding messages are sent to the replication stream (David Pirotte, Euler Taveira)", "commit_aliases": ["ac4645c01"], "source_commits": ["ac4645c01"], "source_entry_id": "14.0/changes/083", "db_id": "7693d0a85d74e5bf7424aa76846ae1fb", "patch_ids": ["0a1da86be866a6290aaf4fc52319ce6d"], "statement_hash": "bce1715145a90f6d2dd89dbc73ac3d202833f14ef8fe0fab34b6cb1142d5e7eb", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-5e5b3d3c528f329f", "migration": false}, {"id": "14.0-ffedd7249a341bd4", "cves": [], "html": "<p>Allow logical replication subscriptions to use binary transfer mode (Dave Cramer) <a href=\"https://postgr.es/c/9de77b545\">\u00a7</a></p>\n<p>This is faster than text mode, but slightly less robust.</p>", "text": "Allow logical replication subscriptions to use binary transfer mode (Dave Cramer) \u00a7 This is faster than text mode, but slightly less robust.", "title": "Allow logical replication subscriptions to use binary transfer mode", "commits": ["9de77b545"], "section": "Streaming Replication and Recovery / Logical Replication", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.4.3", "source_hash": "378c5352c0c1afe4a932f4f7fc447f342db3fce22c2bfee5d68f2fb5f76c983d", "section_path": ["Streaming Replication and Recovery", "Logical Replication"], "commit_groups": [["9de77b545"]], "identity_text": "Allow logical replication subscriptions to use binary transfer mode (Dave Cramer) This is faster than text mode, but slightly less robust.", "commit_aliases": ["9de77b545"], "source_commits": ["9de77b545"], "source_entry_id": "14.0/changes/084", "db_id": "6a4ebd2f3486ebdb9cdc49bddfddbd26", "patch_ids": ["317c14d22bf07793659d9704f6354b59"], "statement_hash": "6e379ba26465eb969dd5780f1b4679ac75a62fef4960eceda8a521201630d0d4", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-ffedd7249a341bd4", "migration": false}, {"id": "14.0-38ec4142aa6280a5", "cves": [], "html": "<p>Allow logical decoding to be filtered by xid (Markus Wanner) <a href=\"https://postgr.es/c/f64ea6dc5\">\u00a7</a></p>", "text": "Allow logical decoding to be filtered by xid (Markus Wanner) \u00a7", "title": "Allow logical decoding to be filtered by xid", "commits": ["f64ea6dc5"], "section": "Streaming Replication and Recovery / Logical Replication", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.4.3", "source_hash": "9ef78ce5688d10a57e4c3776ac1b72aaa343502cdf2954c3d2038c416f259e02", "section_path": ["Streaming Replication and Recovery", "Logical Replication"], "commit_groups": [["f64ea6dc5"]], "identity_text": "Allow logical decoding to be filtered by xid (Markus Wanner)", "commit_aliases": ["f64ea6dc5"], "source_commits": ["f64ea6dc5"], "source_entry_id": "14.0/changes/085", "db_id": "60dc02e969cd1dd9c6bf4f3c523ec74a", "patch_ids": ["84e4fdb86e6d7659ee97f33f6711b654"], "statement_hash": "d8c9180f51eb3180caf1ef780db4b69564b86e8c4e8e12985e5548942023316d", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-38ec4142aa6280a5", "migration": false}, {"id": "14.0-17ad58f3fe5f4762", "cves": [], "html": "<p>Reduce the number of keywords that can't be used as column labels without <code>AS</code> (Mark Dilger) <a href=\"https://postgr.es/c/06a7c3154\">\u00a7</a></p>\n<p>There are now 90% fewer restricted keywords.</p>", "text": "Reduce the number of keywords that can't be used as column labels without AS (Mark Dilger) \u00a7 There are now 90% fewer restricted keywords.", "title": "Reduce the number of keywords that can't be used as column labels without AS", "commits": ["06a7c3154"], "section": "SELECT, INSERT", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.5", "source_hash": "3a6187aa13d514b6dce26f8e511847975ef8e461fdb0110d385409ebcf6f7680", "section_path": ["SELECT, INSERT"], "commit_groups": [["06a7c3154"]], "identity_text": "Reduce the number of keywords that can't be used as column labels without AS (Mark Dilger) There are now 90% fewer restricted keywords.", "commit_aliases": ["06a7c3154"], "source_commits": ["06a7c3154"], "source_entry_id": "14.0/changes/086", "db_id": "17e1ead93390847f10dd1c2b503122a7", "patch_ids": ["5baae5e1578f084fd0c5b2a242a63b04"], "statement_hash": "cb206910982c12be61cd2adeed83a15722f1b3dc051c784dbe92e39ef850ac2e", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-17ad58f3fe5f4762", "migration": false}, {"id": "14.0-e19c7abd1ea0ac8a", "cves": [], "html": "<p>Allow an alias to be specified for <code>JOIN</code>'s <code>USING</code> clause (Peter Eisentraut) <a href=\"https://postgr.es/c/055fee7eb\">\u00a7</a></p>\n<p>The alias is created by writing <code>AS</code> after the <code>USING</code> clause. It can be used as a table qualification for the merged <code>USING</code> columns.</p>", "text": "Allow an alias to be specified for JOIN's USING clause (Peter Eisentraut) \u00a7 The alias is created by writing AS after the USING clause. It can be used as a table qualification for the merged USING columns.", "title": "Allow an alias to be specified for JOIN's USING clause", "commits": ["055fee7eb"], "section": "SELECT, INSERT", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.5", "source_hash": "788adff6906876014ba16adf3b418c927c4c5e8728262db86fce60c4211d09cd", "section_path": ["SELECT, INSERT"], "commit_groups": [["055fee7eb"]], "identity_text": "Allow an alias to be specified for JOIN's USING clause (Peter Eisentraut) The alias is created by writing AS after the USING clause. It can be used as a table qualification for the merged USING columns.", "commit_aliases": ["055fee7eb"], "source_commits": ["055fee7eb"], "source_entry_id": "14.0/changes/087", "db_id": "d31499eb97f407212108f39b7a65beff", "patch_ids": ["afbf98d230063fc9199ea21899191717"], "statement_hash": "09cd58a2af6f6f83effa06c8f25dc6cbff74e27948685b139ca86f81089e815f", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-e19c7abd1ea0ac8a", "migration": false}, {"id": "14.0-1fe696c83ed3a3d4", "cves": [], "html": "<p>Allow <code>DISTINCT</code> to be added to <code>GROUP BY</code> to remove duplicate <code>GROUPING SET</code> combinations (Vik Fearing) <a href=\"https://postgr.es/c/be45be9c3\">\u00a7</a></p>\n<p>For example, <code>GROUP BY CUBE (a,b), CUBE (b,c)</code> will generate duplicate grouping combinations without <code>DISTINCT</code>.</p>", "text": "Allow DISTINCT to be added to GROUP BY to remove duplicate GROUPING SET combinations (Vik Fearing) \u00a7 For example, GROUP BY CUBE (a,b), CUBE (b,c) will generate duplicate grouping combinations without DISTINCT.", "title": "Allow DISTINCT to be added to GROUP BY to remove duplicate GROUPING SET combinations", "commits": ["be45be9c3"], "section": "SELECT, INSERT", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.5", "source_hash": "c4c1089c0317bf788160d58f9e9d6826bad10d567c65df420e1b3650f80bf240", "section_path": ["SELECT, INSERT"], "commit_groups": [["be45be9c3"]], "identity_text": "Allow DISTINCT to be added to GROUP BY to remove duplicate GROUPING SET combinations (Vik Fearing) For example, GROUP BY CUBE (a,b), CUBE (b,c) will generate duplicate grouping combinations without DISTINCT.", "commit_aliases": ["be45be9c3"], "source_commits": ["be45be9c3"], "source_entry_id": "14.0/changes/088", "db_id": "049be8718d72a26fbc268ba982925963", "patch_ids": ["4160d0722584e81a78d9f95f10281fe7"], "statement_hash": "7f156953ec265474638dc9d47170eebbd35caf20a45d5f38e9af00fc22ff55c3", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-1fe696c83ed3a3d4", "migration": false}, {"id": "14.0-a032d946aab87da2", "cves": [], "html": "<p>Properly handle <code>DEFAULT</code> entries in multi-row <code>VALUES</code> lists in <code>INSERT</code> (Dean Rasheed) <a href=\"https://postgr.es/c/17958972f\">\u00a7</a></p>\n<p>Such cases used to throw an error.</p>", "text": "Properly handle DEFAULT entries in multi-row VALUES lists in INSERT (Dean Rasheed) \u00a7 Such cases used to throw an error.", "title": "Properly handle DEFAULT entries in multi-row VALUES lists in INSERT", "commits": ["17958972f"], "section": "SELECT, INSERT", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.5", "source_hash": "bbfd97ed5c553abfe28438767686ffb017ba730e8c5a43cd65272cc8d81a65d8", "section_path": ["SELECT, INSERT"], "commit_groups": [["17958972f"]], "identity_text": "Properly handle DEFAULT entries in multi-row VALUES lists in INSERT (Dean Rasheed) Such cases used to throw an error.", "commit_aliases": ["17958972f"], "source_commits": ["17958972f"], "source_entry_id": "14.0/changes/089", "db_id": "7f1adf9498b2db9edc92a950f00ce2ad", "patch_ids": ["70f58c5caf1846bc70d1ef2fb95bf3dd"], "statement_hash": "b07dca5c42c9a405fe965b332f0b425d45818f943550b0ec11557c73a3e81c49", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-a032d946aab87da2", "migration": false}, {"id": "14.0-a9ae679c6e8a6f02", "cves": [], "html": "<p>Add <acronym>SQL</acronym>-standard <code>SEARCH</code> and <code>CYCLE</code> clauses for <a href=\"/docs/14/queries-with.html\" title=\"7.8.\u00a0WITH Queries (Common Table Expressions)\">common table expressions</a> (Peter Eisentraut) <a href=\"https://postgr.es/c/3696a600e\">\u00a7</a> <a href=\"https://postgr.es/c/f4adc41c4\">\u00a7</a></p>\n<p>The same results could be accomplished using existing syntax, but much less conveniently.</p>", "text": "Add SQL-standard SEARCH and CYCLE clauses for common table expressions (Peter Eisentraut) \u00a7 \u00a7 The same results could be accomplished using existing syntax, but much less conveniently.", "title": "Add SQL-standard SEARCH and CYCLE clauses for common table expressions", "commits": ["3696a600e", "f4adc41c4"], "section": "SELECT, INSERT", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.5", "source_hash": "dc5b7432a6886e56078a8287b468482aed509ae3adac2476b55c5bc3fc6951f2", "section_path": ["SELECT, INSERT"], "commit_groups": [["3696a600e"], ["f4adc41c4"]], "identity_text": "Add SQL-standard SEARCH and CYCLE clauses for common table expressions (Peter Eisentraut) The same results could be accomplished using existing syntax, but much less conveniently.", "commit_aliases": ["3696a600e", "f4adc41c4"], "source_commits": ["3696a600e", "f4adc41c4"], "source_entry_id": "14.0/changes/090", "db_id": "2699ecd555a13e0bb86d02de1f3ed87a", "patch_ids": ["533ea3467eaae43b410b71c3158d5bad", "d01ea6ae5cb04812e8e09cafdd7e6d8b"], "statement_hash": "19d7fff1933f000f006ae2d56e240b0a7cbfde0f698b052610e0dd688a5c036d", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-a9ae679c6e8a6f02", "migration": false}, {"id": "14.0-7303658d6d6feac3", "cves": [], "html": "<p>Allow column names in the <code>WHERE</code> clause of <code>ON CONFLICT</code> to be table-qualified (Tom Lane) <a href=\"https://postgr.es/c/6c0373ab7\">\u00a7</a></p>\n<p>Only the target table can be referenced, however.</p>", "text": "Allow column names in the WHERE clause of ON CONFLICT to be table-qualified (Tom Lane) \u00a7 Only the target table can be referenced, however.", "title": "Allow column names in the WHERE clause of ON CONFLICT to be table-qualified", "commits": ["6c0373ab7"], "section": "SELECT, INSERT", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.5", "source_hash": "91438aed63195b53d64887d6953a26377941268bcd614063c0322bd5e9d62bb7", "section_path": ["SELECT, INSERT"], "commit_groups": [["6c0373ab7"]], "identity_text": "Allow column names in the WHERE clause of ON CONFLICT to be table-qualified (Tom Lane) Only the target table can be referenced, however.", "commit_aliases": ["6c0373ab7"], "source_commits": ["6c0373ab7"], "source_entry_id": "14.0/changes/091", "db_id": "b638233420a5c4e01274ee7e61f5f15d", "patch_ids": ["968c1d6ea81365652928ba19eb5936a4"], "statement_hash": "fb078b19a178244eedf013cb2cf1acd76cbd1902741f600c0b4856740e4be7b4", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-7303658d6d6feac3", "migration": false}, {"id": "14.0-a3bf95ce7edb753d", "cves": [], "html": "<p>Allow <a href=\"/docs/14/sql-refreshmaterializedview.html\" title=\"REFRESH MATERIALIZED VIEW\"><code>REFRESH MATERIALIZED VIEW</code></a> to use parallelism (Bharath Rupireddy) <a href=\"https://postgr.es/c/9e7ccd9ef\">\u00a7</a></p>", "text": "Allow REFRESH MATERIALIZED VIEW to use parallelism (Bharath Rupireddy) \u00a7", "title": "Allow REFRESH MATERIALIZED VIEW to use parallelism", "commits": ["9e7ccd9ef"], "section": "Utility Commands", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.6", "source_hash": "efad6eaff32d0e051563beca2158a2ebbbaf9df384e5eee3dc272f35dcb80875", "section_path": ["Utility Commands"], "commit_groups": [["9e7ccd9ef"]], "identity_text": "Allow REFRESH MATERIALIZED VIEW to use parallelism (Bharath Rupireddy)", "commit_aliases": ["9e7ccd9ef"], "source_commits": ["9e7ccd9ef"], "source_entry_id": "14.0/changes/092", "db_id": "c8b7c33af79796d1bc69b7421fbea2eb", "patch_ids": ["df12e3bf0ded2a31dc83490f7416f54c"], "statement_hash": "3c59f1ebea6b0a184d793b6a10cab4c4a0fe0c4bd8d6d25e116047f59ff584aa", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-a3bf95ce7edb753d", "migration": false}, {"id": "14.0-89fa187265662ca4", "cves": [], "html": "<p>Allow <a href=\"/docs/14/sql-reindex.html\" title=\"REINDEX\"><code>REINDEX</code></a> to change the tablespace of the new index (Alexey Kondratov, Michael Paquier, Justin Pryzby) <a href=\"https://postgr.es/c/c5b286047\">\u00a7</a> <a href=\"https://postgr.es/c/57e6db706\">\u00a7</a></p>\n<p>This is done by specifying a <code>TABLESPACE</code> clause. A <code>--tablespace</code> option was also added to <a href=\"/docs/14/app-reindexdb.html\" title=\"reindexdb\"><span>reindexdb</span></a> to control this.</p>", "text": "Allow REINDEX to change the tablespace of the new index (Alexey Kondratov, Michael Paquier, Justin Pryzby) \u00a7 \u00a7 This is done by specifying a TABLESPACE clause. A --tablespace option was also added to reindexdb to control this.", "title": "Allow REINDEX to change the tablespace of the new index", "commits": ["57e6db706", "c5b286047"], "section": "Utility Commands", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.6", "source_hash": "4af188f738a570495090e85344d34df4a010a2c67d0e876c8effbc6f0840aa23", "section_path": ["Utility Commands"], "commit_groups": [["57e6db706"], ["c5b286047"]], "identity_text": "Allow REINDEX to change the tablespace of the new index (Alexey Kondratov, Michael Paquier, Justin Pryzby) This is done by specifying a TABLESPACE clause. A --tablespace option was also added to reindexdb to control this.", "commit_aliases": ["57e6db706", "c5b286047"], "source_commits": ["57e6db706", "c5b286047"], "source_entry_id": "14.0/changes/093", "db_id": "3399be126ebf44971ce3a8bcde682b19", "patch_ids": ["afb5018532ae1f10620ae7ca55ac586b", "b649569308cdb71c44d300b64d440e2f"], "statement_hash": "30e1bb3935ced93638d8e575eaf3dd5597e1f6a62e5f930b32b7c718fa89a671", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-89fa187265662ca4", "migration": false}, {"id": "14.0-0af60d76f7631926", "cves": [], "html": "<p>Allow <code>REINDEX</code> to process all child tables or indexes of a partitioned relation (Justin Pryzby, Michael Paquier) <a href=\"https://postgr.es/c/a6642b3ae\">\u00a7</a></p>", "text": "Allow REINDEX to process all child tables or indexes of a partitioned relation (Justin Pryzby, Michael Paquier) \u00a7", "title": "Allow REINDEX to process all child tables or indexes of a partitioned relation", "commits": ["a6642b3ae"], "section": "Utility Commands", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.6", "source_hash": "d4f40a202ccade63ccd59c0e8ad534d05fef6daa8c898248e20935c2a447f6be", "section_path": ["Utility Commands"], "commit_groups": [["a6642b3ae"]], "identity_text": "Allow REINDEX to process all child tables or indexes of a partitioned relation (Justin Pryzby, Michael Paquier)", "commit_aliases": ["a6642b3ae"], "source_commits": ["a6642b3ae"], "source_entry_id": "14.0/changes/094", "db_id": "194162c257a6034fc17ff77263e53adb", "patch_ids": ["68a082d5d0c148aae2f957e6d62da976"], "statement_hash": "0434d32ece6a33c9d4fd1eebc62e787c76e0bd69aada90a1c0f405f4aa816875", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-0af60d76f7631926", "migration": false}, {"id": "14.0-21516bf19d3f88ea", "cves": [], "html": "<p>Allow index commands using <code>CONCURRENTLY</code> to avoid waiting for the completion of other operations using <code>CONCURRENTLY</code> (\u00c1lvaro Herrera) <a href=\"https://postgr.es/c/c98763bf5\">\u00a7</a> <a href=\"https://postgr.es/c/f9900df5f\">\u00a7</a> <a href=\"https://postgr.es/c/d9d076222\">\u00a7</a></p>", "text": "Allow index commands using CONCURRENTLY to avoid waiting for the completion of other operations using CONCURRENTLY (\u00c1lvaro Herrera) \u00a7 \u00a7 \u00a7", "title": "Allow index commands using CONCURRENTLY to avoid waiting for the completion of other operations using CONCURRENTLY", "commits": ["c98763bf5", "d9d076222", "f9900df5f"], "section": "Utility Commands", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.6", "source_hash": "b8e4ec9df98ce6fcaecf73051d7663af7162c925d58fde6bb078ab64cda99538", "section_path": ["Utility Commands"], "commit_groups": [["c98763bf5"], ["d9d076222"], ["f9900df5f"]], "identity_text": "Allow index commands using CONCURRENTLY to avoid waiting for the completion of other operations using CONCURRENTLY (\u00c1lvaro Herrera)", "commit_aliases": ["c98763bf5", "d9d076222", "f9900df5f"], "source_commits": ["c98763bf5", "d9d076222", "f9900df5f"], "source_entry_id": "14.0/changes/095", "db_id": "e2349e6d9b73ae536eb86bd9f5cbbac4", "patch_ids": ["372a3670e2e3e461b4849f3a7ecea103", "5b064cc4a625651d6f0dba84325817a5", "6bd8462ec5bafe5f31e1328915ed8acb"], "statement_hash": "198f58bf4a787e7d1fb7a4669af00ee92e5c17fe79ef62a8d7b821ea7ccea6ad", "relations": [{"rule": 2, "type": "related", "target": "0c9d974913b05a8737e6a1f04752bfdc", "evidence": {"same_day": true, "patch_ids": ["372a3670e2e3e461b4849f3a7ecea103", "5b064cc4a625651d6f0dba84325817a5", "6bd8462ec5bafe5f31e1328915ed8acb"], "ambiguous_patch_ids": ["372a3670e2e3e461b4849f3a7ecea103", "5b064cc4a625651d6f0dba84325817a5", "6bd8462ec5bafe5f31e1328915ed8acb"]}}], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-21516bf19d3f88ea", "migration": false}, {"id": "14.0-519de61f6807217f", "cves": [], "html": "<p>Improve the performance of <a href=\"/docs/14/sql-copy.html\" title=\"COPY\"><code>COPY FROM</code></a> in binary mode (Bharath Rupireddy, Amit Langote) <a href=\"https://postgr.es/c/0a0727ccf\">\u00a7</a></p>", "text": "Improve the performance of COPY FROM in binary mode (Bharath Rupireddy, Amit Langote) \u00a7", "title": "Improve the performance of COPY FROM in binary mode", "commits": ["0a0727ccf"], "section": "Utility Commands", "category": "performance", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.6", "source_hash": "a89a8722aeb456bec5e36d7c8c85140f41735f733620596abc613e65b46752ac", "section_path": ["Utility Commands"], "commit_groups": [["0a0727ccf"]], "identity_text": "Improve the performance of COPY FROM in binary mode (Bharath Rupireddy, Amit Langote)", "commit_aliases": ["0a0727ccf"], "source_commits": ["0a0727ccf"], "source_entry_id": "14.0/changes/096", "db_id": "17499a7f7837b773bd715b0d05f1446a", "patch_ids": ["695098545fcaf3c01ff77703440f8489"], "statement_hash": "13263f25c3d7e62bafe7248620784f67b3e20fad6f8b5cba0e08d94f37645c1c", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=14.0#14.0-519de61f6807217f", "migration": false}, {"id": "14.0-7d82d783f2734c77", "cves": [], "html": "<p>Preserve <acronym>SQL</acronym> standard syntax for SQL-defined functions in <a href=\"/docs/14/sql-createview.html\" title=\"CREATE VIEW\">view definitions</a> (Tom Lane) <a href=\"https://postgr.es/c/40c24bfef\">\u00a7</a></p>\n<p>Previously, calls to SQL-standard functions such as <a href=\"/docs/14/functions-datetime.html#FUNCTIONS-DATETIME-EXTRACT\" title=\"9.9.1.\u00a0EXTRACT, date_part\"><code>EXTRACT()</code></a> were shown in plain function-call syntax. The original syntax is now preserved when displaying a view or rule.</p>", "text": "Preserve SQL standard syntax for SQL-defined functions in view definitions (Tom Lane) \u00a7 Previously, calls to SQL-standard functions such as EXTRACT() were shown in plain function-call syntax. The original syntax is now preserved when displaying a view or rule.", "title": "Preserve SQL standard syntax for SQL-defined functions in view definitions", "commits": ["40c24bfef"], "section": "Utility Commands", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.6", "source_hash": "aaa73cf6bd9310e4a35ec4c07cf04a2745d44a0836622f55fa0e38a1d9773478", "section_path": ["Utility Commands"], "commit_groups": [["40c24bfef"]], "identity_text": "Preserve SQL standard syntax for SQL-defined functions in view definitions (Tom Lane) Previously, calls to SQL-standard functions such as EXTRACT() were shown in plain function-call syntax. The original syntax is now preserved when displaying a view or rule.", "commit_aliases": ["40c24bfef"], "source_commits": ["40c24bfef"], "source_entry_id": "14.0/changes/097", "db_id": "d43d921af91c3c920dbaa807fd65e982", "patch_ids": ["ab32d9761075379afa1e50d2ecad42e5"], "statement_hash": "b94547ba44faeaf4d2d6b598e245f0f0006a0f312a5826234027b29fb8b32aa7", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-7d82d783f2734c77", "migration": false}, {"id": "14.0-4b14d34ef2401230", "cves": [], "html": "<p>Add the <acronym>SQL</acronym>-standard clause <code>GRANTED BY</code> to <a href=\"/docs/14/sql-grant.html\" title=\"GRANT\"><code>GRANT</code></a> and <a href=\"/docs/14/sql-revoke.html\" title=\"REVOKE\"><code>REVOKE</code></a> (Peter Eisentraut) <a href=\"https://postgr.es/c/6aaaa76bb\">\u00a7</a></p>", "text": "Add the SQL-standard clause GRANTED BY to GRANT and REVOKE (Peter Eisentraut) \u00a7", "title": "Add the SQL-standard clause GRANTED BY to GRANT and REVOKE", "commits": ["6aaaa76bb"], "section": "Utility Commands", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.6", "source_hash": "16d8b96cda6ce877f81fb571bf5d1cf1cb3005dbb0513dcff8e839b604fe0508", "section_path": ["Utility Commands"], "commit_groups": [["6aaaa76bb"]], "identity_text": "Add the SQL-standard clause GRANTED BY to GRANT and REVOKE (Peter Eisentraut)", "commit_aliases": ["6aaaa76bb"], "source_commits": ["6aaaa76bb"], "source_entry_id": "14.0/changes/098", "db_id": "77acc5db1b510977afbe386087c995c8", "patch_ids": ["69b21b77584e35c3293de0caffcb9b29"], "statement_hash": "ed1098fa081d54705b0d98ea56a4328a6149e1b1fc0067ba90e27a9a588a04b1", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-4b14d34ef2401230", "migration": false}, {"id": "14.0-466b6164497b3ba7", "cves": [], "html": "<p>Add <code>OR REPLACE</code> option for <a href=\"/docs/14/sql-createtrigger.html\" title=\"CREATE TRIGGER\"><code>CREATE TRIGGER</code></a> (Takamichi Osumi) <a href=\"https://postgr.es/c/92bf7e2d0\">\u00a7</a></p>\n<p>This allows pre-existing triggers to be conditionally replaced.</p>", "text": "Add OR REPLACE option for CREATE TRIGGER (Takamichi Osumi) \u00a7 This allows pre-existing triggers to be conditionally replaced.", "title": "Add OR REPLACE option for CREATE TRIGGER", "commits": ["92bf7e2d0"], "section": "Utility Commands", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.6", "source_hash": "20c0cd0f52863a42182818f2441ce311676b004cbc126a2ccc3f6c19a4a6f03d", "section_path": ["Utility Commands"], "commit_groups": [["92bf7e2d0"]], "identity_text": "Add OR REPLACE option for CREATE TRIGGER (Takamichi Osumi) This allows pre-existing triggers to be conditionally replaced.", "commit_aliases": ["92bf7e2d0"], "source_commits": ["92bf7e2d0"], "source_entry_id": "14.0/changes/099", "db_id": "cc531de5fce6fbb83c3afa73ad767881", "patch_ids": ["9c4d991b6f24b3903a347c61104e47e5"], "statement_hash": "6a350087b573fd9ea8918ce339f495714710c0f821b208880a497b886952afc9", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-466b6164497b3ba7", "migration": false}, {"id": "14.0-2fb8a5890d1056c0", "cves": [], "html": "<p>Allow <a href=\"/docs/14/sql-truncate.html\" title=\"TRUNCATE\"><code>TRUNCATE</code></a> to operate on foreign tables (Kazutaka Onishi, Kohei KaiGai) <a href=\"https://postgr.es/c/8ff1c9464\">\u00a7</a></p>\n<p>The <a href=\"/docs/14/postgres-fdw.html\" title=\"F.35.\u00a0postgres_fdw\"><span>postgres_fdw</span></a> module also now supports this.</p>", "text": "Allow TRUNCATE to operate on foreign tables (Kazutaka Onishi, Kohei KaiGai) \u00a7 The postgres_fdw module also now supports this.", "title": "Allow TRUNCATE to operate on foreign tables", "commits": ["8ff1c9464"], "section": "Utility Commands", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.6", "source_hash": "67732253591d6e7e9b6901d7f4fc972edeba2fe44859d3a86fb8b5b6e8a3875d", "section_path": ["Utility Commands"], "commit_groups": [["8ff1c9464"]], "identity_text": "Allow TRUNCATE to operate on foreign tables (Kazutaka Onishi, Kohei KaiGai) The postgres_fdw module also now supports this.", "commit_aliases": ["8ff1c9464"], "source_commits": ["8ff1c9464"], "source_entry_id": "14.0/changes/100", "db_id": "fd61e25dc11d238169c7c84c00a345d6", "patch_ids": ["055dc15a7bfaac81486a9d9f0ea6ec27"], "statement_hash": "d3a5f7dfd51a9235a95f0a29e6f015c92c97d41ee7837c604acf7c5e5db94346", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-2fb8a5890d1056c0", "migration": false}, {"id": "14.0-84d686cb90f21031", "cves": [], "html": "<p>Allow publications to be more easily added to and removed from a subscription (Japin Li) <a href=\"https://postgr.es/c/82ed7748b\">\u00a7</a></p>\n<p>The new syntax is <a href=\"/docs/14/sql-altersubscription.html\" title=\"ALTER SUBSCRIPTION\"><code>ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION</code></a>. This avoids having to specify all publications to add/remove entries.</p>", "text": "Allow publications to be more easily added to and removed from a subscription (Japin Li) \u00a7 The new syntax is ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION. This avoids having to specify all publications to add/remove entries.", "title": "Allow publications to be more easily added to and removed from a subscription", "commits": ["82ed7748b"], "section": "Utility Commands", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.6", "source_hash": "dc243802ba4fe7232f8420b7f050638670b7ef0ab29bc564581985dc74959c5d", "section_path": ["Utility Commands"], "commit_groups": [["82ed7748b"]], "identity_text": "Allow publications to be more easily added to and removed from a subscription (Japin Li) The new syntax is ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION. This avoids having to specify all publications to add/remove entries.", "commit_aliases": ["82ed7748b"], "source_commits": ["82ed7748b"], "source_entry_id": "14.0/changes/101", "db_id": "0ce422fc05ab0a96122d6eb246c6165d", "patch_ids": ["b747bff1d046d5305098899a27c53b37"], "statement_hash": "61acb7a6ba7f10d03f30174a2f6c8f3a0f48d02fcee310fad73d1be32e750b45", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-84d686cb90f21031", "migration": false}, {"id": "14.0-55580dee532cb29f", "cves": [], "html": "<p>Add primary keys, unique constraints, and foreign keys to <a href=\"/docs/14/catalogs.html\" title=\"Chapter\u00a052.\u00a0System Catalogs\">system catalogs</a> (Peter Eisentraut) <a href=\"https://postgr.es/c/dfb75e478\">\u00a7</a> <a href=\"https://postgr.es/c/62f34097c\">\u00a7</a></p>\n<p>These changes help <acronym>GUI</acronym> tools analyze the system catalogs. The existing unique indexes of catalogs now have associated <code>UNIQUE</code> or <code>PRIMARY KEY</code> constraints. Foreign key relationships are not actually stored or implemented as constraints, but can be obtained for display from the function <a href=\"/docs/14/functions-info.html#FUNCTIONS-INFO-CATALOG-TABLE\" title=\"Table\u00a09.70.\u00a0System Catalog Information Functions\">pg_get_catalog_foreign_keys()</a>.</p>", "text": "Add primary keys, unique constraints, and foreign keys to system catalogs (Peter Eisentraut) \u00a7 \u00a7 These changes help GUI tools analyze the system catalogs. The existing unique indexes of catalogs now have associated UNIQUE or PRIMARY KEY constraints. Foreign key relationships are not actually stored or implemented as constraints, but can be obtained for display from the function pg_get_catalog_foreign_keys().", "title": "Add primary keys, unique constraints, and foreign keys to system catalogs", "commits": ["62f34097c", "dfb75e478"], "section": "Utility Commands", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.6", "source_hash": "96d421ff0404d18462c6addaf1400bb54a95b210f708a6f7fac668a4e59ce401", "section_path": ["Utility Commands"], "commit_groups": [["62f34097c"], ["dfb75e478"]], "identity_text": "Add primary keys, unique constraints, and foreign keys to system catalogs (Peter Eisentraut) These changes help GUI tools analyze the system catalogs. The existing unique indexes of catalogs now have associated UNIQUE or PRIMARY KEY constraints. Foreign key relationships are not actually stored or implemented as constraints, but can be obtained for display from the function pg_get_catalog_foreign_keys().", "commit_aliases": ["62f34097c", "dfb75e478"], "source_commits": ["62f34097c", "dfb75e478"], "source_entry_id": "14.0/changes/102", "db_id": "32b3a991aa9c4e7d5eaf557258f0cf65", "patch_ids": ["1f251a8c4404cff1c95bd260e4e3fbb6", "7d9cb0e7006805070122bebb747aba6b"], "statement_hash": "e8303e15956599c8cb09f1f6157d02eb93268871ff67770d2b4b516c27986b81", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-55580dee532cb29f", "migration": false}, {"id": "14.0-24196717bb2f4ed3", "cves": [], "html": "<p>Allow <a href=\"/docs/14/functions-info.html\" title=\"9.26.\u00a0System Information Functions and Operators\"><code>CURRENT_ROLE</code></a> every place <code>CURRENT_USER</code> is accepted (Peter Eisentraut) <a href=\"https://postgr.es/c/45b980570\">\u00a7</a></p>", "text": "Allow CURRENT_ROLE every place CURRENT_USER is accepted (Peter Eisentraut) \u00a7", "title": "Allow CURRENT_ROLE every place CURRENT_USER is accepted", "commits": ["45b980570"], "section": "Utility Commands", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.6", "source_hash": "57791f643ac529ff7ddadb73295ad06d6807598c9c7197a525d728db8134265c", "section_path": ["Utility Commands"], "commit_groups": [["45b980570"]], "identity_text": "Allow CURRENT_ROLE every place CURRENT_USER is accepted (Peter Eisentraut)", "commit_aliases": ["45b980570"], "source_commits": ["45b980570"], "source_entry_id": "14.0/changes/103", "db_id": "4561c66c5f91dbe5f58dd2f7a71a2f4f", "patch_ids": ["63b5d955ed55f046a1484c01f1680407"], "statement_hash": "25df2a089dab2ae076e03404bb33e7892a54222fd542730dec8dc8428b54dfc3", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-24196717bb2f4ed3", "migration": false}, {"id": "14.0-7537355fd40165a7", "cves": [], "html": "<p>Allow extensions and built-in data types to implement <a href=\"/docs/14/sql-altertype.html\" title=\"ALTER TYPE\">subscripting</a> (Dmitry Dolgov) <a href=\"https://postgr.es/c/c7aba7c14\">\u00a7</a></p>\n<p>Previously subscript handling was hard-coded into the server, so that subscripting could only be applied to array types. This change allows subscript notation to be used to extract or assign portions of a value of any type for which the concept makes sense.</p>", "text": "Allow extensions and built-in data types to implement subscripting (Dmitry Dolgov) \u00a7 Previously subscript handling was hard-coded into the server, so that subscripting could only be applied to array types. This change allows subscript notation to be used to extract or assign portions of a value of any type for which the concept makes sense.", "title": "Allow extensions and built-in data types to implement subscripting", "commits": ["c7aba7c14"], "section": "Data Types", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.7", "source_hash": "a0e6321c0501da847c1f5acdf8721dec4f5ffeea885ec531d03582d0b41ab478", "section_path": ["Data Types"], "commit_groups": [["c7aba7c14"]], "identity_text": "Allow extensions and built-in data types to implement subscripting (Dmitry Dolgov) Previously subscript handling was hard-coded into the server, so that subscripting could only be applied to array types. This change allows subscript notation to be used to extract or assign portions of a value of any type for which the concept makes sense.", "commit_aliases": ["c7aba7c14"], "source_commits": ["c7aba7c14"], "source_entry_id": "14.0/changes/104", "db_id": "e1bfb25d1e943bfea707efd8af4d1c7c", "patch_ids": ["f9c254467da6e9b3496742d75cbe1ff0"], "statement_hash": "95a698762359a3f4e80084d398cc2c5aeba5f2c3129901dd35024f4093782299", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-7537355fd40165a7", "migration": false}, {"id": "14.0-268247527d00b8cd", "cves": [], "html": "<p>Allow subscripting of <a href=\"/docs/14/datatype-json.html\" title=\"8.14.\u00a0JSON Types\"><code>JSONB</code></a> (Dmitry Dolgov) <a href=\"https://postgr.es/c/676887a3b\">\u00a7</a> <a href=\"https://postgr.es/c/81fcc72e6\">\u00a7</a> <a href=\"https://postgr.es/c/aa6e46daf\">\u00a7</a></p>\n<p><code>JSONB</code> subscripting can be used to extract and assign to portions of <code>JSONB</code> documents.</p>", "text": "Allow subscripting of JSONB (Dmitry Dolgov) \u00a7 \u00a7 \u00a7 JSONB subscripting can be used to extract and assign to portions of JSONB documents.", "title": "Allow subscripting of JSONB", "commits": ["676887a3b", "81fcc72e6", "aa6e46daf"], "section": "Data Types", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.7", "source_hash": "7ff61f1b3ac3bfc56f1a024e4a6f032a1e0ba7f5da00bc351e05f3cd95369750", "section_path": ["Data Types"], "commit_groups": [["676887a3b"], ["81fcc72e6"], ["aa6e46daf"]], "identity_text": "Allow subscripting of JSONB (Dmitry Dolgov) JSONB subscripting can be used to extract and assign to portions of JSONB documents.", "commit_aliases": ["676887a3b", "81fcc72e6", "aa6e46daf"], "source_commits": ["676887a3b", "81fcc72e6", "aa6e46daf"], "source_entry_id": "14.0/changes/105", "db_id": "0cc23da16b30a5cdb98b298d68d99330", "patch_ids": ["44793863a8279dd71fc5a9f2dc48be1d", "553b23f89db239a449653928e85bb186", "be5aa3b2ecb1c2c8addaaa8eda0de469"], "statement_hash": "77de78d3c9da380e6c52002a9df6b9e364b49335f62678da28095cb794ecb858", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-268247527d00b8cd", "migration": false}, {"id": "14.0-18b54f4534b858c8", "cves": [], "html": "<p>Add support for <a href=\"/docs/14/rangetypes.html\" title=\"8.17.\u00a0Range Types\">multirange data types</a> (Paul Jungwirth, Alexander Korotkov) <a href=\"https://postgr.es/c/6df7a9698\">\u00a7</a> <a href=\"https://postgr.es/c/db6335b5b\">\u00a7</a> <a href=\"https://postgr.es/c/62097a4cc\">\u00a7</a> <a href=\"https://postgr.es/c/244ad5415\">\u00a7</a></p>\n<p>These are like range data types, but they allow the specification of multiple, ordered, non-overlapping ranges. An associated multirange type is automatically created for every range type.</p>", "text": "Add support for multirange data types (Paul Jungwirth, Alexander Korotkov) \u00a7 \u00a7 \u00a7 \u00a7 These are like range data types, but they allow the specification of multiple, ordered, non-overlapping ranges. An associated multirange type is automatically created for every range type.", "title": "Add support for multirange data types", "commits": ["244ad5415", "62097a4cc", "6df7a9698", "db6335b5b"], "section": "Data Types", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.7", "source_hash": "13d082051cc048de04f0cd345171663bcf4340ce4e32aa69d029d291871f1d4a", "section_path": ["Data Types"], "commit_groups": [["244ad5415"], ["62097a4cc"], ["6df7a9698"], ["db6335b5b"]], "identity_text": "Add support for multirange data types (Paul Jungwirth, Alexander Korotkov) These are like range data types, but they allow the specification of multiple, ordered, non-overlapping ranges. An associated multirange type is automatically created for every range type.", "commit_aliases": ["244ad5415", "62097a4cc", "6df7a9698", "db6335b5b"], "source_commits": ["244ad5415", "62097a4cc", "6df7a9698", "db6335b5b"], "source_entry_id": "14.0/changes/106", "db_id": "2638335b0393e381fe1e956fa542c98d", "patch_ids": ["158a99fd8bca9d9456a72e271a827c80", "5641daa03dde7671991f0f5bec8c49a8", "865abf0ed245feb7444c71070c5c106e", "f9f6fc14c71b9380fb5d642445437a31"], "statement_hash": "30fc7bb36d566ed4e031f751ad8f3b29f92a0a7b1d6fd66a53b93d74818375da", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-18b54f4534b858c8", "migration": false}, {"id": "14.0-38ed5e0c5ed14856", "cves": [], "html": "<p>Add support for the <a href=\"/docs/14/textsearch-dictionaries.html#TEXTSEARCH-SNOWBALL-DICTIONARY\" title=\"12.6.6.\u00a0Snowball Dictionary\">stemming</a> of languages Armenian, Basque, Catalan, Hindi, Serbian, and Yiddish (Peter Eisentraut) <a href=\"https://postgr.es/c/cbcc8726b\">\u00a7</a> <a href=\"https://postgr.es/c/c2e71cb35\">\u00a7</a> <a href=\"https://postgr.es/c/678d0e239\">\u00a7</a></p>", "text": "Add support for the stemming of languages Armenian, Basque, Catalan, Hindi, Serbian, and Yiddish (Peter Eisentraut) \u00a7 \u00a7 \u00a7", "title": "Add support for the stemming of languages Armenian, Basque, Catalan, Hindi, Serbian, and Yiddish", "commits": ["678d0e239", "c2e71cb35", "cbcc8726b"], "section": "Data Types", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.7", "source_hash": "fda8ac4f238c748dffa6c149b99d59ba38fba4eccab5fc0db641c30eabddca36", "section_path": ["Data Types"], "commit_groups": [["678d0e239"], ["c2e71cb35"], ["cbcc8726b"]], "identity_text": "Add support for the stemming of languages Armenian, Basque, Catalan, Hindi, Serbian, and Yiddish (Peter Eisentraut)", "commit_aliases": ["678d0e239", "c2e71cb35", "cbcc8726b"], "source_commits": ["678d0e239", "c2e71cb35", "cbcc8726b"], "source_entry_id": "14.0/changes/107", "db_id": "5ea740bd7c8c2c6c1f7b4d66415af582", "patch_ids": ["0f481d954aade693357c915bde29d3cf", "510710888dd635c9e3cf7671436484bf", "8895268eef04006b417b79477c16c4bd"], "statement_hash": "9f550ab24bc922c2257fad24fac3b415d688c9ed158deae45186edd7ff8e2b0c", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-38ed5e0c5ed14856", "migration": false}, {"id": "14.0-e07b9c7b8c6057f8", "cves": [], "html": "<p>Allow <a href=\"/docs/14/textsearch-intro.html#TEXTSEARCH-INTRO-CONFIGURATIONS\" title=\"12.1.3.\u00a0Configurations\">tsearch data files</a> to have unlimited line lengths (Tom Lane) <a href=\"https://postgr.es/c/83b61319a\">\u00a7</a></p>\n<p>The previous limit was 4K bytes. Also remove function <code>t_readline()</code>.</p>", "text": "Allow tsearch data files to have unlimited line lengths (Tom Lane) \u00a7 The previous limit was 4K bytes. Also remove function t_readline().", "title": "Allow tsearch data files to have unlimited line lengths", "commits": ["83b61319a"], "section": "Data Types", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.7", "source_hash": "af7c2b34fd6be39f84cd9da431564971dc153ee3651f29c9e530f5c99f3b64a9", "section_path": ["Data Types"], "commit_groups": [["83b61319a"]], "identity_text": "Allow tsearch data files to have unlimited line lengths (Tom Lane) The previous limit was 4K bytes. Also remove function t_readline().", "commit_aliases": ["83b61319a"], "source_commits": ["83b61319a"], "source_entry_id": "14.0/changes/108", "db_id": "a4a57313e9ed29cb36d0337dacf1dd94", "patch_ids": ["7187cbb61186a81a3c6784f15e294085"], "statement_hash": "fda8546d5b852f448eb6cbd46d42d6380a2f33770762487784e3dc58c6cd46fc", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-e07b9c7b8c6057f8", "migration": false}, {"id": "14.0-f6045f73f6e938d6", "cves": [], "html": "<p>Add support for <code>Infinity</code> and <code>-Infinity</code> values in the <a href=\"/docs/14/datatype-numeric.html\" title=\"8.1.\u00a0Numeric Types\">numeric data type</a> (Tom Lane) <a href=\"https://postgr.es/c/a57d312a7\">\u00a7</a></p>\n<p>Floating-point data types already supported these.</p>", "text": "Add support for Infinity and -Infinity values in the numeric data type (Tom Lane) \u00a7 Floating-point data types already supported these.", "title": "Add support for Infinity and -Infinity values in the numeric data type", "commits": ["a57d312a7"], "section": "Data Types", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.7", "source_hash": "1acc84aea8f8ea025ce74751057f6609f86e0481ff4410329596efe0475e8c25", "section_path": ["Data Types"], "commit_groups": [["a57d312a7"]], "identity_text": "Add support for Infinity and -Infinity values in the numeric data type (Tom Lane) Floating-point data types already supported these.", "commit_aliases": ["a57d312a7"], "source_commits": ["a57d312a7"], "source_entry_id": "14.0/changes/109", "db_id": "2bd1292f391e9124f513063b69f212d6", "patch_ids": ["1dee9522161350e06e578757e009c4ff"], "statement_hash": "6ddf344a239d328a455276ebed3277af3e51fd212e5c69878f5d0749a8a6c088", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-f6045f73f6e938d6", "migration": false}, {"id": "14.0-507df3b45a92a30b", "cves": [], "html": "<p>Add <a href=\"/docs/14/functions-geometry.html\" title=\"9.11.\u00a0Geometric Functions and Operators\">point operators</a> <code>&lt;&lt;|</code> and <code>|&gt;&gt;</code> representing strictly above/below tests (Emre Hasegeli) <a href=\"https://postgr.es/c/0cc993278\">\u00a7</a></p>\n<p>Previously these were called <code>&gt;^</code> and <code>&lt;^</code>, but that naming is inconsistent with other geometric data types. The old names remain available, but may someday be removed.</p>", "text": "Add point operators <<| and |>> representing strictly above/below tests (Emre Hasegeli) \u00a7 Previously these were called >^ and <^, but that naming is inconsistent with other geometric data types. The old names remain available, but may someday be removed.", "title": "Add point operators <<| and |>> representing strictly above/below tests", "commits": ["0cc993278"], "section": "Data Types", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.7", "source_hash": "b8fdade7b86ba3d8c539cc988898c1c90b373bb201c3a35ec7ad9ff898169d0e", "section_path": ["Data Types"], "commit_groups": [["0cc993278"]], "identity_text": "Add point operators <<| and |>> representing strictly above/below tests (Emre Hasegeli) Previously these were called >^ and <^, but that naming is inconsistent with other geometric data types. The old names remain available, but may someday be removed.", "commit_aliases": ["0cc993278"], "source_commits": ["0cc993278"], "source_entry_id": "14.0/changes/110", "db_id": "3f128fc43200d9c75140c0f46477e8a7", "patch_ids": ["bf5661ae690b1c7fead618807863da3b"], "statement_hash": "84de7d62fb5d8bd90110bee7d7bad40eb294731492bc8726d1562cd8aa5a8eec", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-507df3b45a92a30b", "migration": false}, {"id": "14.0-07d3647b19696474", "cves": [], "html": "<p>Add operators to add and subtract <a href=\"/docs/14/datatype-pg-lsn.html\" title=\"8.20.\u00a0pg_lsn Type\"><code>LSN</code></a> and numeric (byte) values (Fujii Masao) <a href=\"https://postgr.es/c/9bae7e4cd\">\u00a7</a></p>", "text": "Add operators to add and subtract LSN and numeric (byte) values (Fujii Masao) \u00a7", "title": "Add operators to add and subtract LSN and numeric (byte) values", "commits": ["9bae7e4cd"], "section": "Data Types", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.7", "source_hash": "0d766258694aeb27f272b9150bb3d6dce5d2a6bfb6c2985bff3c0f6d37a19267", "section_path": ["Data Types"], "commit_groups": [["9bae7e4cd"]], "identity_text": "Add operators to add and subtract LSN and numeric (byte) values (Fujii Masao)", "commit_aliases": ["9bae7e4cd"], "source_commits": ["9bae7e4cd"], "source_entry_id": "14.0/changes/111", "db_id": "b17285685ea5c0b5d02eab4b1a9411ac", "patch_ids": ["19536d3d4c707b7bed5f945c5da091f3"], "statement_hash": "475a3e0d1a68acbccdfe77a92866659d0f93298adcc0109d0184a13516c2017a", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-07d3647b19696474", "migration": false}, {"id": "14.0-c8b19791d4cc916f", "cves": [], "html": "<p>Allow <a href=\"/docs/14/protocol-overview.html#PROTOCOL-FORMAT-CODES\" title=\"53.1.3.\u00a0Formats and Format Codes\">binary data transfer</a> to be more forgiving of array and record <code>OID</code> mismatches (Tom Lane) <a href=\"https://postgr.es/c/670c0a1d4\">\u00a7</a></p>", "text": "Allow binary data transfer to be more forgiving of array and record OID mismatches (Tom Lane) \u00a7", "title": "Allow binary data transfer to be more forgiving of array and record OID mismatches", "commits": ["670c0a1d4"], "section": "Data Types", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.7", "source_hash": "d99c027d192e3351dcca0a93477b78374e0016762b464dbefcd0341d95a5c652", "section_path": ["Data Types"], "commit_groups": [["670c0a1d4"]], "identity_text": "Allow binary data transfer to be more forgiving of array and record OID mismatches (Tom Lane)", "commit_aliases": ["670c0a1d4"], "source_commits": ["670c0a1d4"], "source_entry_id": "14.0/changes/112", "db_id": "55a622ea3ef2d0b9ffba7b5382ef3b20", "patch_ids": ["34fc7a783e62be2d215ea9b37c67dcf6"], "statement_hash": "32af0d9b6ff39d2bfee4311319f2fa9c2976543d77f5f1c9525b70f5c7abf066", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-c8b19791d4cc916f", "migration": false}, {"id": "14.0-54dbfd1cb2471a05", "cves": [], "html": "<p>Create composite array types for system catalogs (Wenjing Zeng) <a href=\"https://postgr.es/c/f7f70d5e2\">\u00a7</a></p>\n<p>User-defined relations have long had composite types associated with them, and also array types over those composite types. System catalogs now do as well. This change also fixes an inconsistency that creating a user-defined table in single-user mode would fail to create a composite array type.</p>", "text": "Create composite array types for system catalogs (Wenjing Zeng) \u00a7 User-defined relations have long had composite types associated with them, and also array types over those composite types. System catalogs now do as well. This change also fixes an inconsistency that creating a user-defined table in single-user mode would fail to create a composite array type.", "title": "Create composite array types for system catalogs", "commits": ["f7f70d5e2"], "section": "Data Types", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.7", "source_hash": "1d88ad3df6c0355a2262dfc7b508ad1b017bdd06416a09160e292c3701a31eb1", "section_path": ["Data Types"], "commit_groups": [["f7f70d5e2"]], "identity_text": "Create composite array types for system catalogs (Wenjing Zeng) User-defined relations have long had composite types associated with them, and also array types over those composite types. System catalogs now do as well. This change also fixes an inconsistency that creating a user-defined table in single-user mode would fail to create a composite array type.", "commit_aliases": ["f7f70d5e2"], "source_commits": ["f7f70d5e2"], "source_entry_id": "14.0/changes/113", "db_id": "ebe44389be518b9984a8ca519e88e042", "patch_ids": ["cbac061e3140f3e6c0d9c145c27e45aa"], "statement_hash": "0cccebb4a1b37d2ad2c6e2c6bfc20225854081eedd71f36a28a364ceadfe3845", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-54dbfd1cb2471a05", "migration": false}, {"id": "14.0-cfe917b6b439a33e", "cves": [], "html": "<p>Allow <acronym>SQL</acronym>-language <a href=\"/docs/14/sql-createfunction.html\" title=\"CREATE FUNCTION\">functions</a> and <a href=\"/docs/14/sql-createprocedure.html\" title=\"CREATE PROCEDURE\">procedures</a> to use <acronym>SQL</acronym>-standard function bodies (Peter Eisentraut) <a href=\"https://postgr.es/c/e717a9a18\">\u00a7</a></p>\n<p>Previously only string-literal function bodies were supported. When writing a function or procedure in SQL-standard syntax, the body is parsed immediately and stored as a parse tree. This allows better tracking of function dependencies, and can have security benefits.</p>", "text": "Allow SQL-language functions and procedures to use SQL-standard function bodies (Peter Eisentraut) \u00a7 Previously only string-literal function bodies were supported. When writing a function or procedure in SQL-standard syntax, the body is parsed immediately and stored as a parse tree. This allows better tracking of function dependencies, and can have security benefits.", "title": "Allow SQL-language functions and procedures to use SQL-standard function bodies", "commits": ["e717a9a18"], "section": "Functions", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.8", "source_hash": "daec6496a7b20e7889939f2968fb04906a17a465c6f0a6d510aa2c5a18d415f5", "section_path": ["Functions"], "commit_groups": [["e717a9a18"]], "identity_text": "Allow SQL-language functions and procedures to use SQL-standard function bodies (Peter Eisentraut) Previously only string-literal function bodies were supported. When writing a function or procedure in SQL-standard syntax, the body is parsed immediately and stored as a parse tree. This allows better tracking of function dependencies, and can have security benefits.", "commit_aliases": ["e717a9a18"], "source_commits": ["e717a9a18"], "source_entry_id": "14.0/changes/114", "db_id": "4821c63dbd3aef37e199ebe9a3eda019", "patch_ids": ["b4b15d88bed9dc4d3e5b601ef765c0ef"], "statement_hash": "91c962935b11caf35bcded1da0ca7a7817d42258d11ef1078c0beb50e4ab4ad4", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-cfe917b6b439a33e", "migration": false}, {"id": "14.0-26dc71d1d450fd13", "cves": [], "html": "<p>Allow <a href=\"/docs/14/sql-createprocedure.html\" title=\"CREATE PROCEDURE\">procedures</a> to have <code>OUT</code> parameters (Peter Eisentraut) <a href=\"https://postgr.es/c/2453ea142\">\u00a7</a> <a href=\"https://postgr.es/c/9213462c5\">\u00a7</a></p>", "text": "Allow procedures to have OUT parameters (Peter Eisentraut) \u00a7 \u00a7", "title": "Allow procedures to have OUT parameters", "commits": ["2453ea142", "9213462c5"], "section": "Functions", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.8", "source_hash": "71b18cc24f17eaab3dcdbc33e528fbb24a590d98e3727ec733e68bd4e86eda0f", "section_path": ["Functions"], "commit_groups": [["2453ea142"], ["9213462c5"]], "identity_text": "Allow procedures to have OUT parameters (Peter Eisentraut)", "commit_aliases": ["2453ea142", "9213462c5"], "source_commits": ["2453ea142", "9213462c5"], "source_entry_id": "14.0/changes/115", "db_id": "baaaa111860b656ff13443b77e9a9436", "patch_ids": ["2ce57dd0f35420e3108c5db714b0ffeb", "f6b209b4e3fdf91b028387c1bc508a50"], "statement_hash": "19342772dcd21d38f19fc518ed69ceb5c54b131299bc4d1b812baaa49a962853", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-26dc71d1d450fd13", "migration": false}, {"id": "14.0-c4fe9d0eb11b9d2a", "cves": [], "html": "<p>Allow some array functions to operate on a mix of compatible data types (Tom Lane) <a href=\"https://postgr.es/c/9e38c2bb5\">\u00a7</a></p>\n<p>The functions <a href=\"/docs/14/functions-array.html\" title=\"9.19.\u00a0Array Functions and Operators\"><code>array_append()</code></a>, <code>array_prepend()</code>, <code>array_cat()</code>, <code>array_position()</code>, <code>array_positions()</code>, <code>array_remove()</code>, <code>array_replace()</code>, and <a href=\"/docs/14/functions-math.html\" title=\"9.3.\u00a0Mathematical Functions and Operators\"><code>width_bucket()</code></a> now take <code>anycompatiblearray</code> instead of <code>anyarray</code> arguments. This makes them less fussy about exact matches of argument types.</p>", "text": "Allow some array functions to operate on a mix of compatible data types (Tom Lane) \u00a7 The functions array_append(), array_prepend(), array_cat(), array_position(), array_positions(), array_remove(), array_replace(), and width_bucket() now take anycompatiblearray instead of anyarray arguments. This makes them less fussy about exact matches of argument types.", "title": "Allow some array functions to operate on a mix of compatible data types", "commits": ["9e38c2bb5"], "section": "Functions", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.8", "source_hash": "db959a464b140c3c3354e45711221b1af5565de8a897cb156ddd811a7bb9d78f", "section_path": ["Functions"], "commit_groups": [["9e38c2bb5"]], "identity_text": "Allow some array functions to operate on a mix of compatible data types (Tom Lane) The functions array_append(), array_prepend(), array_cat(), array_position(), array_positions(), array_remove(), array_replace(), and width_bucket() now take anycompatiblearray instead of anyarray arguments. This makes them less fussy about exact matches of argument types.", "commit_aliases": ["9e38c2bb5"], "source_commits": ["9e38c2bb5"], "source_entry_id": "14.0/changes/116", "db_id": "08589d1884d0ea2ed7d1f62b5df4cc1d", "patch_ids": ["80d8aa49c80ecce0ddda625f58860fe1"], "statement_hash": "a4f0bb9f017c7df91785f8cafd764b3e12f80333332f6b33695300a6a44f90a3", "relations": [{"rule": 2, "type": "related", "target": "57c4547257fc6633764aa973e9303863", "evidence": {"same_day": true, "patch_ids": ["80d8aa49c80ecce0ddda625f58860fe1"]}}], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-c4fe9d0eb11b9d2a", "migration": false}, {"id": "14.0-2eb623c83b8eb36a", "cves": [], "html": "<p>Add <acronym>SQL</acronym>-standard <a href=\"/docs/14/functions-array.html\" title=\"9.19.\u00a0Array Functions and Operators\"><code>trim_array()</code></a> function (Vik Fearing) <a href=\"https://postgr.es/c/0a687c8f1\">\u00a7</a></p>\n<p>This could already be done with array slices, but less easily.</p>", "text": "Add SQL-standard trim_array() function (Vik Fearing) \u00a7 This could already be done with array slices, but less easily.", "title": "Add SQL-standard trim_array() function", "commits": ["0a687c8f1"], "section": "Functions", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.8", "source_hash": "db065e2e5ba613268eb6068d5e11210887d2cf0434ef4113233147f71aed463e", "section_path": ["Functions"], "commit_groups": [["0a687c8f1"]], "identity_text": "Add SQL-standard trim_array() function (Vik Fearing) This could already be done with array slices, but less easily.", "commit_aliases": ["0a687c8f1"], "source_commits": ["0a687c8f1"], "source_entry_id": "14.0/changes/117", "db_id": "c583f69786b99666212475e55a700446", "patch_ids": ["2917c9084868e6da13cd021a1d005ba2"], "statement_hash": "84f0230017aeec171d441fd3bc75d8bdb48183fb827fcbe3b083804e28a4202b", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-2eb623c83b8eb36a", "migration": false}, {"id": "14.0-e3099b6658302b78", "cves": [], "html": "<p>Add <code>bytea</code> equivalents of <a href=\"/docs/14/functions-binarystring.html\" title=\"9.5.\u00a0Binary String Functions and Operators\"><code>ltrim()</code></a> and <code>rtrim()</code> (Joel Jacobson) <a href=\"https://postgr.es/c/a6cf3df4e\">\u00a7</a></p>", "text": "Add bytea equivalents of ltrim() and rtrim() (Joel Jacobson) \u00a7", "title": "Add bytea equivalents of ltrim() and rtrim()", "commits": ["a6cf3df4e"], "section": "Functions", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.8", "source_hash": "1fc71cfc9710b76d55953090249b60b471e4b8ea5c56b86c6aaee3e03e748e50", "section_path": ["Functions"], "commit_groups": [["a6cf3df4e"]], "identity_text": "Add bytea equivalents of ltrim() and rtrim() (Joel Jacobson)", "commit_aliases": ["a6cf3df4e"], "source_commits": ["a6cf3df4e"], "source_entry_id": "14.0/changes/118", "db_id": "9694115172abc4c86c97e59dae561d3d", "patch_ids": ["e873cbf97cda0872c9b9cdf033c0194a"], "statement_hash": "459c7fff060620c10edfb8b88d180c197a1a11938398802fdc99d57f6a4a9fb8", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-e3099b6658302b78", "migration": false}, {"id": "14.0-52a2375777294f21", "cves": [], "html": "<p>Support negative indexes in <a href=\"/docs/14/functions-string.html\" title=\"9.4.\u00a0String Functions and Operators\"><code>split_part()</code></a> (Nikhil Benesch) <a href=\"https://postgr.es/c/ec0294fb2\">\u00a7</a></p>\n<p>Negative values start from the last field and count backward.</p>", "text": "Support negative indexes in split_part() (Nikhil Benesch) \u00a7 Negative values start from the last field and count backward.", "title": "Support negative indexes in split_part()", "commits": ["ec0294fb2"], "section": "Functions", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.8", "source_hash": "98192b92397f4ae4b2069eb49053d7e20030717a4e7e853ddbbd0d5200c91b3b", "section_path": ["Functions"], "commit_groups": [["ec0294fb2"]], "identity_text": "Support negative indexes in split_part() (Nikhil Benesch) Negative values start from the last field and count backward.", "commit_aliases": ["ec0294fb2"], "source_commits": ["ec0294fb2"], "source_entry_id": "14.0/changes/119", "db_id": "c77c7b01ef65ea8744fe46125d79e62b", "patch_ids": ["732abdb8c6f066eb5a42788cc4b16dd6"], "statement_hash": "bea1a000222529e21b542bed16bd07e2c8264f29eaaaa3d9ae9e77fd045ccef3", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-52a2375777294f21", "migration": false}, {"id": "14.0-66a434e43e778c1b", "cves": [], "html": "<p>Add <a href=\"/docs/14/functions-string.html\" title=\"9.4.\u00a0String Functions and Operators\"><code>string_to_table()</code></a> function to split a string on delimiters (Pavel Stehule) <a href=\"https://postgr.es/c/66f163068\">\u00a7</a></p>\n<p>This is similar to the <a href=\"/docs/14/functions-string.html\" title=\"9.4.\u00a0String Functions and Operators\"><code>regexp_split_to_table()</code></a> function.</p>", "text": "Add string_to_table() function to split a string on delimiters (Pavel Stehule) \u00a7 This is similar to the regexp_split_to_table() function.", "title": "Add string_to_table() function to split a string on delimiters", "commits": ["66f163068"], "section": "Functions", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.8", "source_hash": "ea868861832cc36437bf7376c8ac351bf607a6fe340600b8460f2e04f4f04ad3", "section_path": ["Functions"], "commit_groups": [["66f163068"]], "identity_text": "Add string_to_table() function to split a string on delimiters (Pavel Stehule) This is similar to the regexp_split_to_table() function.", "commit_aliases": ["66f163068"], "source_commits": ["66f163068"], "source_entry_id": "14.0/changes/120", "db_id": "a9da603976725202ff376acfcab74cda", "patch_ids": ["b84372ee684d0f0cb5941f5fb1f9025d"], "statement_hash": "b5616f4a0ad01fa8a5947cadec78f53d0d6f38d489c846b6d19529cc73715647", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-66a434e43e778c1b", "migration": false}, {"id": "14.0-168c1281c06bac03", "cves": [], "html": "<p>Add <a href=\"/docs/14/functions-string.html\" title=\"9.4.\u00a0String Functions and Operators\"><code>unistr()</code></a> function to allow Unicode characters to be specified as backslash-hex escapes in strings (Pavel Stehule) <a href=\"https://postgr.es/c/f37fec837\">\u00a7</a></p>\n<p>This is similar to how Unicode can be specified in literal strings.</p>", "text": "Add unistr() function to allow Unicode characters to be specified as backslash-hex escapes in strings (Pavel Stehule) \u00a7 This is similar to how Unicode can be specified in literal strings.", "title": "Add unistr() function to allow Unicode characters to be specified as backslash-hex escapes in strings", "commits": ["f37fec837"], "section": "Functions", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.8", "source_hash": "0f2dd3c24173f497cb2ad7866825c9eb337a337a31d9f0b1fb8cd683c71726b5", "section_path": ["Functions"], "commit_groups": [["f37fec837"]], "identity_text": "Add unistr() function to allow Unicode characters to be specified as backslash-hex escapes in strings (Pavel Stehule) This is similar to how Unicode can be specified in literal strings.", "commit_aliases": ["f37fec837"], "source_commits": ["f37fec837"], "source_entry_id": "14.0/changes/121", "db_id": "bfe42a949647d7a6869f62d5d9ec68c4", "patch_ids": ["26594207ffbf42dd6bdcd3f4f7973b59"], "statement_hash": "b9ea8a1f041a6e9fbbac56a63920562acbdff598c2139e13ff17f015aaa75e8e", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-168c1281c06bac03", "migration": false}, {"id": "14.0-1fe97760dd03080c", "cves": [], "html": "<p>Add <a href=\"/docs/14/functions-aggregate.html\" title=\"9.21.\u00a0Aggregate Functions\"><code>bit_xor()</code></a> XOR aggregate function (Alexey Bashtanov) <a href=\"https://postgr.es/c/f9a0392e1\">\u00a7</a></p>", "text": "Add bit_xor() XOR aggregate function (Alexey Bashtanov) \u00a7", "title": "Add bit_xor() XOR aggregate function", "commits": ["f9a0392e1"], "section": "Functions", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.8", "source_hash": "3a84b34355c04722089ed403e980d14d323c2dbb8557f523f2a2234ae89bf9fd", "section_path": ["Functions"], "commit_groups": [["f9a0392e1"]], "identity_text": "Add bit_xor() XOR aggregate function (Alexey Bashtanov)", "commit_aliases": ["f9a0392e1"], "source_commits": ["f9a0392e1"], "source_entry_id": "14.0/changes/122", "db_id": "788e903ecc700e5529bf5757a983e4fa", "patch_ids": ["23fab42588a19cff1048c7a5abb0b000"], "statement_hash": "b3075aec3f8de161480563d2667b1706a06e7d581da8895d98e61275ca41b61b", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-1fe97760dd03080c", "migration": false}, {"id": "14.0-c0b84c75104d70c7", "cves": [], "html": "<p>Add function <a href=\"/docs/14/functions-binarystring.html\" title=\"9.5.\u00a0Binary String Functions and Operators\"><code>bit_count()</code></a> to return the number of bits set in a bit or byte string (David Fetter) <a href=\"https://postgr.es/c/a6715af1e\">\u00a7</a></p>", "text": "Add function bit_count() to return the number of bits set in a bit or byte string (David Fetter) \u00a7", "title": "Add function bit_count() to return the number of bits set in a bit or byte string", "commits": ["a6715af1e"], "section": "Functions", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.8", "source_hash": "9933900ea21f1de019a363c68485138953892b440da29d2738d580abd4b4a77b", "section_path": ["Functions"], "commit_groups": [["a6715af1e"]], "identity_text": "Add function bit_count() to return the number of bits set in a bit or byte string (David Fetter)", "commit_aliases": ["a6715af1e"], "source_commits": ["a6715af1e"], "source_entry_id": "14.0/changes/123", "db_id": "18d8dfc248612d6fb737406dcbdc632e", "patch_ids": ["09f543ec73510e71e11248aafc84020e"], "statement_hash": "26e292cac6c935aa31b12b6ab3c290c34699b1e79af3172de2359c4f6916a1da", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-c0b84c75104d70c7", "migration": false}, {"id": "14.0-e421939853e6368d", "cves": [], "html": "<p>Add <a href=\"/docs/14/functions-datetime.html#FUNCTIONS-DATETIME-BIN\" title=\"9.9.3.\u00a0date_bin\"><code>date_bin()</code></a> function (John Naylor) <a href=\"https://postgr.es/c/49ab61f0b\">\u00a7</a> <a href=\"https://postgr.es/c/496e58bb0\">\u00a7</a></p>\n<p>This function <span>\u201c<span>bins</span>\u201d</span> input timestamps, grouping them into intervals of a uniform length aligned with a specified origin.</p>", "text": "Add date_bin() function (John Naylor) \u00a7 \u00a7 This function \u201cbins\u201d input timestamps, grouping them into intervals of a uniform length aligned with a specified origin.", "title": "Add date_bin() function", "commits": ["496e58bb0", "49ab61f0b"], "section": "Functions", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.8", "source_hash": "f70888637a47d4a1c6b04432d5fb0139e14952282e4e1ec75abdd4a5f3093b38", "section_path": ["Functions"], "commit_groups": [["496e58bb0"], ["49ab61f0b"]], "identity_text": "Add date_bin() function (John Naylor) This function bins input timestamps, grouping them into intervals of a uniform length aligned with a specified origin.", "commit_aliases": ["496e58bb0", "49ab61f0b"], "source_commits": ["496e58bb0", "49ab61f0b"], "source_entry_id": "14.0/changes/124", "db_id": "df10f249c44172b76cfae9298bb7d636", "patch_ids": ["4f38f62c50eaf9ea0f4aee433ba3c9af", "98010eccb14f067dd376613a4fe71077"], "statement_hash": "fc6b364699e28cd51613aee6b8c1012be72650dda3e994f1e7ea8b371faf42e7", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-e421939853e6368d", "migration": false}, {"id": "14.0-4519b50a4782d2e3", "cves": [], "html": "<p>Allow <a href=\"/docs/14/functions-datetime.html\" title=\"9.9.\u00a0Date/Time Functions and Operators\"><code>make_timestamp()</code></a>/<code>make_timestamptz()</code> to accept negative years (Peter Eisentraut) <a href=\"https://postgr.es/c/a094c8ff5\">\u00a7</a></p>\n<p>Negative values are interpreted as <code>BC</code> years.</p>", "text": "Allow make_timestamp()/make_timestamptz() to accept negative years (Peter Eisentraut) \u00a7 Negative values are interpreted as BC years.", "title": "Allow make_timestamp()/make_timestamptz() to accept negative years", "commits": ["a094c8ff5"], "section": "Functions", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.8", "source_hash": "0c692b72f1f16bab686cce4ed39bec4f364f0ed50d794a93df9c3e041f6b17c0", "section_path": ["Functions"], "commit_groups": [["a094c8ff5"]], "identity_text": "Allow make_timestamp()/make_timestamptz() to accept negative years (Peter Eisentraut) Negative values are interpreted as BC years.", "commit_aliases": ["a094c8ff5"], "source_commits": ["a094c8ff5"], "source_entry_id": "14.0/changes/125", "db_id": "1f517138275a0c124e9a278f5648cf86", "patch_ids": ["b60b76f407accd1670572b19eb0956b1"], "statement_hash": "1ff8220a7346be9faa954c083ee1e62859ac25e84d61db62532af0a806864a8e", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-4519b50a4782d2e3", "migration": false}, {"id": "14.0-90c2364583786215", "cves": [], "html": "<p>Add newer regular expression <a href=\"/docs/14/functions-string.html\" title=\"9.4.\u00a0String Functions and Operators\"><code>substring()</code></a> syntax (Peter Eisentraut) <a href=\"https://postgr.es/c/78c887679\">\u00a7</a></p>\n<p>The new SQL-standard syntax is <code>SUBSTRING(text SIMILAR pattern ESCAPE escapechar)</code>. The previous standard syntax was <code>SUBSTRING(text FROM pattern FOR escapechar)</code>, which is still accepted by <span>PostgreSQL</span>.</p>", "text": "Add newer regular expression substring() syntax (Peter Eisentraut) \u00a7 The new SQL-standard syntax is SUBSTRING(text SIMILAR pattern ESCAPE escapechar). The previous standard syntax was SUBSTRING(text FROM pattern FOR escapechar), which is still accepted by PostgreSQL.", "title": "Add newer regular expression substring() syntax", "commits": ["78c887679"], "section": "Functions", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.8", "source_hash": "4e9f9ebb131ecf01307a3269ba060e5b8bdede3a8ab432b69c9e8a31d5b16352", "section_path": ["Functions"], "commit_groups": [["78c887679"]], "identity_text": "Add newer regular expression substring() syntax (Peter Eisentraut) The new SQL-standard syntax is SUBSTRING(text SIMILAR pattern ESCAPE escapechar). The previous standard syntax was SUBSTRING(text FROM pattern FOR escapechar), which is still accepted by PostgreSQL.", "commit_aliases": ["78c887679"], "source_commits": ["78c887679"], "source_entry_id": "14.0/changes/126", "db_id": "92f0a3e2e813413a640e7f467266479d", "patch_ids": ["4ecc2b44c86547b00fed3e34dd5d0f01"], "statement_hash": "39614327d0a5bc687b354309e206b91a7e88d17f5ef1efda1f80b02147c9b8b5", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-90c2364583786215", "migration": false}, {"id": "14.0-c54179951e40b5fc-1", "cves": [], "html": "<p>Allow complemented character class escapes <a href=\"/docs/14/functions-matching.html#POSIX-ESCAPE-SEQUENCES\" title=\"9.7.3.3.\u00a0Regular Expression Escapes\">\\D</a>, <code>\\S</code>, and <code>\\W</code> within regular expression brackets (Tom Lane) <a href=\"https://postgr.es/c/2a0af7fe4\">\u00a7</a></p>", "text": "Allow complemented character class escapes \\D, \\S, and \\W within regular expression brackets (Tom Lane) \u00a7", "title": "Allow complemented character class escapes \\D, \\S, and \\W within regular expression brackets", "commits": ["2a0af7fe4"], "section": "Functions", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.8", "source_hash": "da5c6805bcaa8fe7906106af572cfceea3aa3fa630969152808c96ddaf8ae1cd", "section_path": ["Functions"], "commit_groups": [["2a0af7fe4"]], "identity_text": "Allow complemented character class escapes \\D, \\S, and \\W within regular expression brackets (Tom Lane)", "commit_aliases": ["2a0af7fe4"], "source_commits": ["2a0af7fe4"], "source_entry_id": "14.0/changes/127", "db_id": "11855fff64e4bfd4f316452868bdaf21", "patch_ids": ["a7eb1e3ebcb335443b46af32516407cc"], "statement_hash": "cf8cca9f23c8bf6c8a4b44f6b8b9fbec90d3fd24062b6383d96e7a4ee4a53b4c", "relations": [{"rule": 2, "type": "related", "target": "31b906e8faf3983c67c4ba76c9bcbe42", "evidence": {"same_day": true, "patch_ids": ["a7eb1e3ebcb335443b46af32516407cc"], "ambiguous_patch_ids": ["a7eb1e3ebcb335443b46af32516407cc"]}}, {"rule": 2, "type": "related", "target": "7cb33f40db82cf57d3f6f027f0bd7fa4", "evidence": {"same_day": true, "patch_ids": ["a7eb1e3ebcb335443b46af32516407cc"], "ambiguous_patch_ids": ["a7eb1e3ebcb335443b46af32516407cc"]}}], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-c54179951e40b5fc-1", "migration": false}, {"id": "14.0-c54179951e40b5fc-2", "cves": [], "html": "<p>Add <a href=\"/docs/14/functions-matching.html#POSIX-BRACKET-EXPRESSIONS\" title=\"9.7.3.2.\u00a0Bracket Expressions\"><code>[[:word:]]</code></a> as a regular expression character class, equivalent to <code>\\w</code> (Tom Lane) <a href=\"https://postgr.es/c/2a0af7fe4\">\u00a7</a></p>", "text": "Add [[:word:]] as a regular expression character class, equivalent to \\w (Tom Lane) \u00a7", "title": "Add [[:word:]] as a regular expression character class, equivalent to \\w", "commits": ["2a0af7fe4"], "section": "Functions", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.8", "source_hash": "3078e3d0af4305d271ea949360d5da35b6f5a66f797c64e5f2522c12dfe82240", "section_path": ["Functions"], "commit_groups": [["2a0af7fe4"]], "identity_text": "Add [[:word:]] as a regular expression character class, equivalent to \\w (Tom Lane)", "commit_aliases": ["2a0af7fe4"], "source_commits": ["2a0af7fe4"], "source_entry_id": "14.0/changes/128", "db_id": "31b906e8faf3983c67c4ba76c9bcbe42", "patch_ids": ["a7eb1e3ebcb335443b46af32516407cc"], "statement_hash": "5e9bdbc53adeabb63cc665287dce311bb7bcc33c8e0a3bd16179e7a890eae412", "relations": [{"rule": 2, "type": "related", "target": "11855fff64e4bfd4f316452868bdaf21", "evidence": {"same_day": true, "patch_ids": ["a7eb1e3ebcb335443b46af32516407cc"], "ambiguous_patch_ids": ["a7eb1e3ebcb335443b46af32516407cc"]}}, {"rule": 2, "type": "related", "target": "7cb33f40db82cf57d3f6f027f0bd7fa4", "evidence": {"same_day": true, "patch_ids": ["a7eb1e3ebcb335443b46af32516407cc"], "ambiguous_patch_ids": ["a7eb1e3ebcb335443b46af32516407cc"]}}], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-c54179951e40b5fc-2", "migration": false}, {"id": "14.0-c1ccb55c77613af9", "cves": [], "html": "<p>Allow more flexible data types for default values of <a href=\"/docs/14/functions-window.html\" title=\"9.22.\u00a0Window Functions\"><code>lead()</code></a> and <code>lag()</code> window functions (Vik Fearing) <a href=\"https://postgr.es/c/5c292e6b9\">\u00a7</a></p>", "text": "Allow more flexible data types for default values of lead() and lag() window functions (Vik Fearing) \u00a7", "title": "Allow more flexible data types for default values of lead() and lag() window functions", "commits": ["5c292e6b9"], "section": "Functions", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.8", "source_hash": "8c0496c7e8c3c0a8208f49c34a5d25c79baf3284bf6dc96546ce683910cd5296", "section_path": ["Functions"], "commit_groups": [["5c292e6b9"]], "identity_text": "Allow more flexible data types for default values of lead() and lag() window functions (Vik Fearing)", "commit_aliases": ["5c292e6b9"], "source_commits": ["5c292e6b9"], "source_entry_id": "14.0/changes/129", "db_id": "082c85af60515bcb6618c887e7b6b22e", "patch_ids": ["fec99da0bc8450d3eed709e34739bb49"], "statement_hash": "a426651ca2ba045de2f57ad3dae88be3628407b41978ab140e5c6599b0854b4c", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-c1ccb55c77613af9", "migration": false}, {"id": "14.0-0ad7337081d6a71d", "cves": [], "html": "<p>Make non-zero <a href=\"/docs/14/datatype-numeric.html#DATATYPE-FLOAT\" title=\"8.1.3.\u00a0Floating-Point Types\">floating-point values</a> divided by infinity return zero (Kyotaro Horiguchi) <a href=\"https://postgr.es/c/fac83dbd6\">\u00a7</a></p>\n<p>Previously such operations produced underflow errors.</p>", "text": "Make non-zero floating-point values divided by infinity return zero (Kyotaro Horiguchi) \u00a7 Previously such operations produced underflow errors.", "title": "Make non-zero floating-point values divided by infinity return zero", "commits": ["fac83dbd6"], "section": "Functions", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.8", "source_hash": "ebc2d65595b171c88987478f7de2595fd898aa600dbbcb97a0b98fd8b968b762", "section_path": ["Functions"], "commit_groups": [["fac83dbd6"]], "identity_text": "Make non-zero floating-point values divided by infinity return zero (Kyotaro Horiguchi) Previously such operations produced underflow errors.", "commit_aliases": ["fac83dbd6"], "source_commits": ["fac83dbd6"], "source_entry_id": "14.0/changes/130", "db_id": "685d60b983c7a30ff669d6d7133dd16a", "patch_ids": ["c3fd842805a868d959c67d784849ff4b"], "statement_hash": "a8a3d5c1e80291b198b9bfc787d8fc7dce4ed5a07ea266204b5436c648ea84f8", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-0ad7337081d6a71d", "migration": false}, {"id": "14.0-671cdc35924f5732", "cves": [], "html": "<p>Make floating-point division of NaN by zero return NaN (Tom Lane) <a href=\"https://postgr.es/c/4fb6aeb4f\">\u00a7</a></p>\n<p>Previously this returned an error.</p>", "text": "Make floating-point division of NaN by zero return NaN (Tom Lane) \u00a7 Previously this returned an error.", "title": "Make floating-point division of NaN by zero return NaN", "commits": ["4fb6aeb4f"], "section": "Functions", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.8", "source_hash": "92babe35676ba81074c91da24a7354b14b32c3815bc7f1759e78097a90bd9ef5", "section_path": ["Functions"], "commit_groups": [["4fb6aeb4f"]], "identity_text": "Make floating-point division of NaN by zero return NaN (Tom Lane) Previously this returned an error.", "commit_aliases": ["4fb6aeb4f"], "source_commits": ["4fb6aeb4f"], "source_entry_id": "14.0/changes/131", "db_id": "3d8e349fe6596f5e788814991f5b88c8", "patch_ids": ["96abea7797ae412aad2cfef70ecebb68"], "statement_hash": "b5f48822d04944aa50f411e297cb6ba9d1468a227ffe4e707e3dcc1dbdaf3792", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-671cdc35924f5732", "migration": false}, {"id": "14.0-070ae27fe2363324", "cves": [], "html": "<p>Cause <a href=\"/docs/14/functions-math.html\" title=\"9.3.\u00a0Mathematical Functions and Operators\"><code>exp()</code></a> and <code>power()</code> for negative-infinity exponents to return zero (Tom Lane) <a href=\"https://postgr.es/c/decbe2bfb\">\u00a7</a> <a href=\"https://postgr.es/c/e532b1d57\">\u00a7</a> <a href=\"https://postgr.es/c/5674eb987\">\u00a7</a></p>\n<p>Previously they often returned underflow errors.</p>", "text": "Cause exp() and power() for negative-infinity exponents to return zero (Tom Lane) \u00a7 \u00a7 \u00a7 Previously they often returned underflow errors.", "title": "Cause exp() and power() for negative-infinity exponents to return zero", "commits": ["5674eb987", "decbe2bfb", "e532b1d57"], "section": "Functions", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.8", "source_hash": "c5532a1f6e94745431d794b6a2d0ccb5cd964fa2b12e11bdcd2400dc4b448afd", "section_path": ["Functions"], "commit_groups": [["5674eb987"], ["decbe2bfb"], ["e532b1d57"]], "identity_text": "Cause exp() and power() for negative-infinity exponents to return zero (Tom Lane) Previously they often returned underflow errors.", "commit_aliases": ["5674eb987", "decbe2bfb", "e532b1d57"], "source_commits": ["5674eb987", "decbe2bfb", "e532b1d57"], "source_entry_id": "14.0/changes/132", "db_id": "7f545583939150ff15678e1848d660ea", "patch_ids": ["1a94be85e52bb312876ba131782715d4", "c2dd9d3b0aece33f62d0ac894d19cd7c", "f4ee098ed6a5ff0841eb9d570285177d"], "statement_hash": "3896068a2d2174de31d4aa7f29e4e871e0091178af9d4fc747e0ed7f45c77ed1", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-070ae27fe2363324", "migration": false}, {"id": "14.0-1d4fc55487c28c7c", "cves": [], "html": "<p>Improve the accuracy of geometric computations involving infinity (Tom Lane) <a href=\"https://postgr.es/c/8597a48d0\">\u00a7</a></p>", "text": "Improve the accuracy of geometric computations involving infinity (Tom Lane) \u00a7", "title": "Improve the accuracy of geometric computations involving infinity", "commits": ["8597a48d0"], "section": "Functions", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.8", "source_hash": "2f48a7b58b175c17561abcc7a148434501c2420a5b57cba1d4a6f19bcaa2669f", "section_path": ["Functions"], "commit_groups": [["8597a48d0"]], "identity_text": "Improve the accuracy of geometric computations involving infinity (Tom Lane)", "commit_aliases": ["8597a48d0"], "source_commits": ["8597a48d0"], "source_entry_id": "14.0/changes/133", "db_id": "3b034060a12c844f0765315fd513083c", "patch_ids": ["a39c50f126aa45f4366b96bea76580a9"], "statement_hash": "3134b568ce5f6634ce83bb8998965802e5f14b22d5df07290e3133bf82a48923", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-1d4fc55487c28c7c", "migration": false}, {"id": "14.0-ad76352a985df92f", "cves": [], "html": "<p>Mark built-in type coercion functions as leakproof where possible (Tom Lane) <a href=\"https://postgr.es/c/8a37951ee\">\u00a7</a></p>\n<p>This allows more use of functions that require type conversion in security-sensitive situations.</p>", "text": "Mark built-in type coercion functions as leakproof where possible (Tom Lane) \u00a7 This allows more use of functions that require type conversion in security-sensitive situations.", "title": "Mark built-in type coercion functions as leakproof where possible", "commits": ["8a37951ee"], "section": "Functions", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.8", "source_hash": "1abb86d0ce4e97aa2d7bb9812c11f70028461de142ba4b612ce6067c10970be6", "section_path": ["Functions"], "commit_groups": [["8a37951ee"]], "identity_text": "Mark built-in type coercion functions as leakproof where possible (Tom Lane) This allows more use of functions that require type conversion in security-sensitive situations.", "commit_aliases": ["8a37951ee"], "source_commits": ["8a37951ee"], "source_entry_id": "14.0/changes/134", "db_id": "41f92ac4e65ced30d9cea07b78b39b47", "patch_ids": ["6c1d01418464f07a7eb80d903bd195d3"], "statement_hash": "844a849f20f9e8447f5ae69c4b95e3a0a480d42ecec1bb0934b97b831087ccde", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-ad76352a985df92f", "migration": false}, {"id": "14.0-e97f89aeb3176053", "cves": [], "html": "<p>Change <a href=\"/docs/14/functions-info.html\" title=\"9.26.\u00a0System Information Functions and Operators\"><code>pg_describe_object()</code></a>, <code>pg_identify_object()</code>, and <code>pg_identify_object_as_address()</code> to always report helpful error messages for non-existent objects (Michael Paquier) <a href=\"https://postgr.es/c/2a10fdc43\">\u00a7</a></p>", "text": "Change pg_describe_object(), pg_identify_object(), and pg_identify_object_as_address() to always report helpful error messages for non-existent objects (Michael Paquier) \u00a7", "title": "Change pg_describe_object(), pg_identify_object(), and pg_identify_object_as_address() to always report helpful error messages for non-existent objects", "commits": ["2a10fdc43"], "section": "Functions", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.8", "source_hash": "b72bfe5319f36aed9062c18ef1fd5ecf79fbc127b9f95837e2f0993dfb4307e8", "section_path": ["Functions"], "commit_groups": [["2a10fdc43"]], "identity_text": "Change pg_describe_object(), pg_identify_object(), and pg_identify_object_as_address() to always report helpful error messages for non-existent objects (Michael Paquier)", "commit_aliases": ["2a10fdc43"], "source_commits": ["2a10fdc43"], "source_entry_id": "14.0/changes/135", "db_id": "ca11dd71deb2b5851a762a3ea807747f", "patch_ids": ["25747634dadd794cb40d7bc068587963"], "statement_hash": "f3e838220c04e994809eeb39e21806d4a502b35c8a5d7432228d9c8b03f7d740", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-e97f89aeb3176053", "migration": false}, {"id": "14.0-fa0e71f8fd0ae8b3", "cves": [], "html": "<p>Improve PL/pgSQL's <a href=\"/docs/14/plpgsql-expressions.html\" title=\"43.4.\u00a0Expressions\">expression</a> and <a href=\"/docs/14/plpgsql-statements.html#PLPGSQL-STATEMENTS-ASSIGNMENT\" title=\"43.5.1.\u00a0Assignment\">assignment</a> parsing (Tom Lane) <a href=\"https://postgr.es/c/c9d529848\">\u00a7</a></p>\n<p>This change allows assignment to array slices and nested record fields.</p>", "text": "Improve PL/pgSQL's expression and assignment parsing (Tom Lane) \u00a7 This change allows assignment to array slices and nested record fields.", "title": "Improve PL/pgSQL's expression and assignment parsing", "commits": ["c9d529848"], "section": "PL/pgSQL", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.9", "source_hash": "afb64b408c3c7bcb051458123f921379e81fd7b8aec946f791f8fc6c8621a45c", "section_path": ["PL/pgSQL"], "commit_groups": [["c9d529848"]], "identity_text": "Improve PL/pgSQL's expression and assignment parsing (Tom Lane) This change allows assignment to array slices and nested record fields.", "commit_aliases": ["c9d529848"], "source_commits": ["c9d529848"], "source_entry_id": "14.0/changes/136", "db_id": "a7fafd5beea87d39779f2fbaeba0e97f", "patch_ids": ["cc3748f87f2b3ec7c1e91b94e6ad57c3"], "statement_hash": "76fc77efa4529a9527e9a852ad588d8919219e5e5b2273399f17d9dfe9e2b9d5", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-fa0e71f8fd0ae8b3", "migration": false}, {"id": "14.0-27ba8247279e780e", "cves": [], "html": "<p>Allow plpgsql's <a href=\"/docs/14/plpgsql-control-structures.html\" title=\"43.6.\u00a0Control Structures\"><code>RETURN QUERY</code></a> to execute its query using parallelism (Tom Lane) <a href=\"https://postgr.es/c/2f48ede08\">\u00a7</a></p>", "text": "Allow plpgsql's RETURN QUERY to execute its query using parallelism (Tom Lane) \u00a7", "title": "Allow plpgsql's RETURN QUERY to execute its query using parallelism", "commits": ["2f48ede08"], "section": "PL/pgSQL", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.9", "source_hash": "34f98d08981e25d7f7f313a54b412ba8bb3b5cc5d0cb8c31bf46ef3fb1020946", "section_path": ["PL/pgSQL"], "commit_groups": [["2f48ede08"]], "identity_text": "Allow plpgsql's RETURN QUERY to execute its query using parallelism (Tom Lane)", "commit_aliases": ["2f48ede08"], "source_commits": ["2f48ede08"], "source_entry_id": "14.0/changes/137", "db_id": "6aaf0b148a803697815fd4412dab2ef8", "patch_ids": ["9a9da6940f2a03eb7ae4bc28b5c22270"], "statement_hash": "57eb6a6742e95e4efd8c092fc657ef878d07aef9d2b257acf94c1a05ec3656a9", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-27ba8247279e780e", "migration": false}, {"id": "14.0-7d4c81a0d0055fb8", "cves": [], "html": "<p>Improve performance of repeated <a href=\"/docs/14/plpgsql-transactions.html\" title=\"43.8.\u00a0Transaction Management\">CALL</a>s within plpgsql procedures (Pavel Stehule, Tom Lane) <a href=\"https://postgr.es/c/ee895a655\">\u00a7</a></p>", "text": "Improve performance of repeated CALLs within plpgsql procedures (Pavel Stehule, Tom Lane) \u00a7", "title": "Improve performance of repeated CALLs within plpgsql procedures", "commits": ["ee895a655"], "section": "PL/pgSQL", "category": "performance", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.9", "source_hash": "43918156dc263d2ecb220191e42eba91a48f1dc59b0d1fb8f5fdbc1fee6b71f2", "section_path": ["PL/pgSQL"], "commit_groups": [["ee895a655"]], "identity_text": "Improve performance of repeated CALLs within plpgsql procedures (Pavel Stehule, Tom Lane)", "commit_aliases": ["ee895a655"], "source_commits": ["ee895a655"], "source_entry_id": "14.0/changes/138", "db_id": "33db67c4180c430daecc80f178b2b8dd", "patch_ids": ["43f682e3b3155e3742365335766367b5"], "statement_hash": "363d61cff95a77dd070c3c5fe3a0005f0e1a92e64ee16ecf22a09cf33b3cf4ae", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=14.0#14.0-7d4c81a0d0055fb8", "migration": false}, {"id": "14.0-2f68fe78a3b360e7", "cves": [], "html": "<p>Add <a href=\"/docs/14/libpq-pipeline-mode.html#LIBPQ-PIPELINE-SENDING\" title=\"34.5.1.1.\u00a0Issuing Queries\">pipeline</a> mode to libpq (Craig Ringer, Matthieu Garrigues, \u00c1lvaro Herrera) <a href=\"https://postgr.es/c/acb7e4eb6\">\u00a7</a></p>\n<p>This allows multiple queries to be sent, only waiting for completion when a specific synchronization message is sent.</p>", "text": "Add pipeline mode to libpq (Craig Ringer, Matthieu Garrigues, \u00c1lvaro Herrera) \u00a7 This allows multiple queries to be sent, only waiting for completion when a specific synchronization message is sent.", "title": "Add pipeline mode to libpq", "commits": ["acb7e4eb6"], "section": "Client Interfaces", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.10", "source_hash": "c713583060373043979fc1218ef4efd7f6be9363463690123d49eccd9270e997", "section_path": ["Client Interfaces"], "commit_groups": [["acb7e4eb6"]], "identity_text": "Add pipeline mode to libpq (Craig Ringer, Matthieu Garrigues, \u00c1lvaro Herrera) This allows multiple queries to be sent, only waiting for completion when a specific synchronization message is sent.", "commit_aliases": ["acb7e4eb6"], "source_commits": ["acb7e4eb6"], "source_entry_id": "14.0/changes/139", "db_id": "c72a474ac6e2e0bbfda8c136a8809530", "patch_ids": ["8d5e42d8009a54459d0b7b54ffb01564"], "statement_hash": "4ef1c19966950fe5ba78e647a34711bb6ad9a4248b22d194533db4c387d2df44", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-2f68fe78a3b360e7", "migration": false}, {"id": "14.0-f71a0fbd3625326c", "cves": [], "html": "<p>Enhance libpq's <a href=\"/docs/14/libpq-connect.html#LIBPQ-PARAMKEYWORDS\" title=\"34.1.2.\u00a0Parameter Key Words\"><code>target_session_attrs</code></a> parameter options (Haribabu Kommi, Greg Nancarrow, Vignesh C, Tom Lane) <a href=\"https://postgr.es/c/d16f8c8e4\">\u00a7</a> <a href=\"https://postgr.es/c/ee28cacf6\">\u00a7</a></p>\n<p>The new options are <code>read-only</code>, <code>primary</code>, <code>standby</code>, and <code>prefer-standby</code>.</p>", "text": "Enhance libpq's target_session_attrs parameter options (Haribabu Kommi, Greg Nancarrow, Vignesh C, Tom Lane) \u00a7 \u00a7 The new options are read-only, primary, standby, and prefer-standby.", "title": "Enhance libpq's target_session_attrs parameter options", "commits": ["d16f8c8e4", "ee28cacf6"], "section": "Client Interfaces", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.10", "source_hash": "5ee435fbe82782d5a7a257c70236fc95dac77aa5afc6c152c9ebd94a59f2129b", "section_path": ["Client Interfaces"], "commit_groups": [["d16f8c8e4"], ["ee28cacf6"]], "identity_text": "Enhance libpq's target_session_attrs parameter options (Haribabu Kommi, Greg Nancarrow, Vignesh C, Tom Lane) The new options are read-only, primary, standby, and prefer-standby.", "commit_aliases": ["d16f8c8e4", "ee28cacf6"], "source_commits": ["d16f8c8e4", "ee28cacf6"], "source_entry_id": "14.0/changes/140", "db_id": "65c92a2636a1d840b49891a66502ade2", "patch_ids": ["3bf6a6363dc7d512990515c7b33d6404", "5c59caeb0135695ebd092f69869387ef"], "statement_hash": "96f3d4068fcb36238dc3350e9636ac653431be6cc77283fddfc97543441a5eb6", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-f71a0fbd3625326c", "migration": false}, {"id": "14.0-f61e8a734c06e199", "cves": [], "html": "<p>Improve the output format of libpq's <a href=\"/docs/14/libpq-control.html\" title=\"34.11.\u00a0Control Functions\"><code>PQtrace()</code></a> (Aya Iwata, \u00c1lvaro Herrera) <a href=\"https://postgr.es/c/198b3716d\">\u00a7</a></p>", "text": "Improve the output format of libpq's PQtrace() (Aya Iwata, \u00c1lvaro Herrera) \u00a7", "title": "Improve the output format of libpq's PQtrace()", "commits": ["198b3716d"], "section": "Client Interfaces", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.10", "source_hash": "daf6001a7b47e2f1a02ed18f1c911f46c30c0b13c7b448bdd171eabac1ade73c", "section_path": ["Client Interfaces"], "commit_groups": [["198b3716d"]], "identity_text": "Improve the output format of libpq's PQtrace() (Aya Iwata, \u00c1lvaro Herrera)", "commit_aliases": ["198b3716d"], "source_commits": ["198b3716d"], "source_entry_id": "14.0/changes/141", "db_id": "b76fc3bfae293390885022d40c92ae91", "patch_ids": ["0a17de26d8f09a10c22ad242ff6ca6d8"], "statement_hash": "6c617f48c51df8c45e0e69c5108cfd798473621bc1be0f52466f2fbb5dd83a9e", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-f61e8a734c06e199", "migration": false}, {"id": "14.0-7ad2c9d6708bd04c", "cves": [], "html": "<p>Allow an ECPG SQL identifier to be linked to a specific connection (Hayato Kuroda) <a href=\"https://postgr.es/c/ad8305a43\">\u00a7</a></p>\n<p>This is done via <a href=\"/docs/14/ecpg-sql-declare-statement.html\" title=\"DECLARE STATEMENT\"><code>DECLARE ... STATEMENT</code></a>.</p>", "text": "Allow an ECPG SQL identifier to be linked to a specific connection (Hayato Kuroda) \u00a7 This is done via DECLARE ... STATEMENT.", "title": "Allow an ECPG SQL identifier to be linked to a specific connection", "commits": ["ad8305a43"], "section": "Client Interfaces", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.10", "source_hash": "326c10a2c026da6c0419e1df97467ae027fa58c28bcb7950e9478f678abff3df", "section_path": ["Client Interfaces"], "commit_groups": [["ad8305a43"]], "identity_text": "Allow an ECPG SQL identifier to be linked to a specific connection (Hayato Kuroda) This is done via DECLARE ... STATEMENT.", "commit_aliases": ["ad8305a43"], "source_commits": ["ad8305a43"], "source_entry_id": "14.0/changes/142", "db_id": "2df3c5530a0780e619ed16944ce6db2f", "patch_ids": ["31b0fcd2b0929c60c243abd4ae1ef9f6"], "statement_hash": "2ce7147b0e2bbd3f4d93872a2b32bbfe685f3628dea5cb5680bd4e175319c998", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-7ad2c9d6708bd04c", "migration": false}, {"id": "14.0-f4afcdf9d3a04aa3", "cves": [], "html": "<p>Allow <a href=\"/docs/14/app-vacuumdb.html\" title=\"vacuumdb\"><span>vacuumdb</span></a> to skip index cleanup and truncation (Nathan Bossart) <a href=\"https://postgr.es/c/9550ea302\">\u00a7</a></p>\n<p>The options are <code>--no-index-cleanup</code> and <code>--no-truncate</code>.</p>", "text": "Allow vacuumdb to skip index cleanup and truncation (Nathan Bossart) \u00a7 The options are --no-index-cleanup and --no-truncate.", "title": "Allow vacuumdb to skip index cleanup and truncation", "commits": ["9550ea302"], "section": "Client Applications", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.11", "source_hash": "951aa4ab0ca2dad71a5acfe1c4d32ed8901b257d808be8e62225b976631867fb", "section_path": ["Client Applications"], "commit_groups": [["9550ea302"]], "identity_text": "Allow vacuumdb to skip index cleanup and truncation (Nathan Bossart) The options are --no-index-cleanup and --no-truncate.", "commit_aliases": ["9550ea302"], "source_commits": ["9550ea302"], "source_entry_id": "14.0/changes/143", "db_id": "62bcaec75381486db1e4a92432a360b1", "patch_ids": ["a8714c62fcff1556e4aff57929734926"], "statement_hash": "c3f6b3f0c628ba6cc3dcf70dc1fdd818f03462e1877ad298c5c8c03060cec281", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-f4afcdf9d3a04aa3", "migration": false}, {"id": "14.0-e2ca3704ad1f3c30", "cves": [], "html": "<p>Allow <a href=\"/docs/14/app-pgdump.html\" title=\"pg_dump\"><span>pg_dump</span></a> to dump only certain extensions (Guillaume Lelarge) <a href=\"https://postgr.es/c/6568cef26\">\u00a7</a></p>\n<p>This is controlled by option <code>--extension</code>.</p>", "text": "Allow pg_dump to dump only certain extensions (Guillaume Lelarge) \u00a7 This is controlled by option --extension.", "title": "Allow pg_dump to dump only certain extensions", "commits": ["6568cef26"], "section": "Client Applications", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.11", "source_hash": "673584e77529d5a8dc4ff8e1a46e2ef3100556893525897ba829c637b51c00dd", "section_path": ["Client Applications"], "commit_groups": [["6568cef26"]], "identity_text": "Allow pg_dump to dump only certain extensions (Guillaume Lelarge) This is controlled by option --extension.", "commit_aliases": ["6568cef26"], "source_commits": ["6568cef26"], "source_entry_id": "14.0/changes/144", "db_id": "883e4362480e8a07065f1547c8090530", "patch_ids": ["0fb25f6eb341a76bc20800aba3a41256"], "statement_hash": "04e8c5771c52891e75fa1b55fbb1d5458633f57d29d3aa4e6afdea40c09ed07c", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-e2ca3704ad1f3c30", "migration": false}, {"id": "14.0-7a42a0257881ec1d", "cves": [], "html": "<p>Add <a href=\"/docs/14/pgbench.html\" title=\"pgbench\"><span>pgbench</span></a> <code>permute()</code> function to randomly shuffle values (Fabien Coelho, Hironobu Suzuki, Dean Rasheed) <a href=\"https://postgr.es/c/6b258e3d6\">\u00a7</a></p>", "text": "Add pgbench permute() function to randomly shuffle values (Fabien Coelho, Hironobu Suzuki, Dean Rasheed) \u00a7", "title": "Add pgbench permute() function to randomly shuffle values", "commits": ["6b258e3d6"], "section": "Client Applications", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.11", "source_hash": "c5a7e41482ca2ac9c89ab8bd005c530a0e7c2692d943645133f2350a23a99794", "section_path": ["Client Applications"], "commit_groups": [["6b258e3d6"]], "identity_text": "Add pgbench permute() function to randomly shuffle values (Fabien Coelho, Hironobu Suzuki, Dean Rasheed)", "commit_aliases": ["6b258e3d6"], "source_commits": ["6b258e3d6"], "source_entry_id": "14.0/changes/145", "db_id": "eb77447998d47768c5340637f2a2fb24", "patch_ids": ["edac6eb2f0e3687124582cd6eaed69e4"], "statement_hash": "dab2ee661ac331a183752bb0f9e7d3af63410fe306f45a7eea493f84a0fa8e98", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-7a42a0257881ec1d", "migration": false}, {"id": "14.0-2694c5b0ec7220da", "cves": [], "html": "<p>Include disconnection times in the reconnection overhead measured by <span>pgbench</span> with <code>-C</code> (Yugo Nagata) <a href=\"https://postgr.es/c/d760d942c\">\u00a7</a></p>", "text": "Include disconnection times in the reconnection overhead measured by pgbench with -C (Yugo Nagata) \u00a7", "title": "Include disconnection times in the reconnection overhead measured by pgbench with -C", "commits": ["d760d942c"], "section": "Client Applications", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.11", "source_hash": "1d008fa340c3a219c7d13b8e551ad6edc4340b56cd703c297e4abf4a886d7fc5", "section_path": ["Client Applications"], "commit_groups": [["d760d942c"]], "identity_text": "Include disconnection times in the reconnection overhead measured by pgbench with -C (Yugo Nagata)", "commit_aliases": ["d760d942c"], "source_commits": ["d760d942c"], "source_entry_id": "14.0/changes/146", "db_id": "d5427ecd84c221870133476ad55a109e", "patch_ids": ["789820933920cd47618cec84f34a2bb8"], "statement_hash": "f0c0d18e22cd58374fc1d2cdf35c044d9fd511891a64e8eb824d20e23214cd6a", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-2694c5b0ec7220da", "migration": false}, {"id": "14.0-b99ade50022a68ea", "cves": [], "html": "<p>Allow multiple verbose option specifications (<code>-v</code>) to increase the logging verbosity (Tom Lane) <a href=\"https://postgr.es/c/99175141c\">\u00a7</a></p>\n<p>This behavior is supported by <a href=\"/docs/14/app-pgdump.html\" title=\"pg_dump\"><span>pg_dump</span></a>, <a href=\"/docs/14/app-pg-dumpall.html\" title=\"pg_dumpall\"><span>pg_dumpall</span></a>, and <a href=\"/docs/14/app-pgrestore.html\" title=\"pg_restore\"><span>pg_restore</span></a>.</p>", "text": "Allow multiple verbose option specifications (-v) to increase the logging verbosity (Tom Lane) \u00a7 This behavior is supported by pg_dump, pg_dumpall, and pg_restore.", "title": "Allow multiple verbose option specifications (-v) to increase the logging verbosity", "commits": ["99175141c"], "section": "Client Applications", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.11", "source_hash": "0e94d9170a3dfc6557e06a17c4af3c9ef34243909f0675c4e145ac34a0aa7b05", "section_path": ["Client Applications"], "commit_groups": [["99175141c"]], "identity_text": "Allow multiple verbose option specifications (-v) to increase the logging verbosity (Tom Lane) This behavior is supported by pg_dump, pg_dumpall, and pg_restore.", "commit_aliases": ["99175141c"], "source_commits": ["99175141c"], "source_entry_id": "14.0/changes/147", "db_id": "45a41c5a0785def8ad6c7dc3de4444d5", "patch_ids": ["8e9cb00d435b0e9f8be13c159e776569"], "statement_hash": "b6e3f726cf0ed254d10045b4c7bcf5c87413ba19c1d5886ea4f46c76ccb1fcc3", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-b99ade50022a68ea", "migration": false}, {"id": "14.0-dac65b9817b15374-1", "cves": [], "html": "<p>Allow <span>psql</span>'s <code>\\df</code> and <code>\\do</code> commands to specify function and operator argument types (Greg Sabino Mullane, Tom Lane) <a href=\"https://postgr.es/c/a3027e1e7\">\u00a7</a></p>\n<p>This helps reduce the number of matches printed for overloaded names.</p>", "text": "Allow psql's \\df and \\do commands to specify function and operator argument types (Greg Sabino Mullane, Tom Lane) \u00a7 This helps reduce the number of matches printed for overloaded names.", "title": "Allow psql's \\df and \\do commands to specify function and operator argument types", "commits": ["a3027e1e7"], "section": "Client Applications / psql", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.11.3", "source_hash": "db69d15132e9b22e38f627025a42c38d936e5473f10e38ea3cc875d883721acd", "section_path": ["Client Applications", "psql"], "commit_groups": [["a3027e1e7"]], "identity_text": "Allow psql's \\df and \\do commands to specify function and operator argument types (Greg Sabino Mullane, Tom Lane) This helps reduce the number of matches printed for overloaded names.", "commit_aliases": ["a3027e1e7"], "source_commits": ["a3027e1e7"], "source_entry_id": "14.0/changes/148", "db_id": "a4fda9d7a35aba06e4d6f037a5875a61", "patch_ids": ["b5516ad5d36eb03d62cefebf100e5ded"], "statement_hash": "1b8f44f077de669f5ed4d13478cea231d0331afae794a302bca73fa5814531ca", "relations": [{"rule": 2, "type": "related", "target": "66aa0c0195a82c942aaf84c756416274", "evidence": {"same_day": true, "patch_ids": ["b5516ad5d36eb03d62cefebf100e5ded"], "ambiguous_patch_ids": ["b5516ad5d36eb03d62cefebf100e5ded"]}}], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-dac65b9817b15374-1", "migration": false}, {"id": "14.0-7490a132ce18953e", "cves": [], "html": "<p>Add an access method column to <span>psql</span>'s <code>\\d[i|m|t]+</code> output (Georgios Kokolatos) <a href=\"https://postgr.es/c/07f386ede\">\u00a7</a></p>", "text": "Add an access method column to psql's \\d[i|m|t]+ output (Georgios Kokolatos) \u00a7", "title": "Add an access method column to psql's \\d[i|m|t]+ output", "commits": ["07f386ede"], "section": "Client Applications / psql", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.11.3", "source_hash": "faed29f28150381198642e5e794c179057e31e8b0d2989ec73f7743f85fd0ee3", "section_path": ["Client Applications", "psql"], "commit_groups": [["07f386ede"]], "identity_text": "Add an access method column to psql's \\d[i|m|t]+ output (Georgios Kokolatos)", "commit_aliases": ["07f386ede"], "source_commits": ["07f386ede"], "source_entry_id": "14.0/changes/149", "db_id": "08238cbd16c1433af7110c4ac534a490", "patch_ids": ["d94ff6fdf7126f0ade1a578c28a4f94b"], "statement_hash": "9b7b98908d6cfc3fef647e6ff95a30a9fb0cc4262eb1b33a030f3e7f08cbf228", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-7490a132ce18953e", "migration": false}, {"id": "14.0-d466142bddd904e6", "cves": [], "html": "<p>Allow <span>psql</span>'s <code>\\dt</code> and <code>\\di</code> to show <acronym>TOAST</acronym> tables and their indexes (Justin Pryzby) <a href=\"https://postgr.es/c/7d80441d2\">\u00a7</a></p>", "text": "Allow psql's \\dt and \\di to show TOAST tables and their indexes (Justin Pryzby) \u00a7", "title": "Allow psql's \\dt and \\di to show TOAST tables and their indexes", "commits": ["7d80441d2"], "section": "Client Applications / psql", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.11.3", "source_hash": "f88d864778970a689e919180cdba07d585b31aa8729156be44a7b9c1888e0e0c", "section_path": ["Client Applications", "psql"], "commit_groups": [["7d80441d2"]], "identity_text": "Allow psql's \\dt and \\di to show TOAST tables and their indexes (Justin Pryzby)", "commit_aliases": ["7d80441d2"], "source_commits": ["7d80441d2"], "source_entry_id": "14.0/changes/150", "db_id": "3d980471873fffe3a49317b2367ae5f0", "patch_ids": ["3951e04e02a981703c757ed4866c0c93"], "statement_hash": "b070796064514b56f985f7a2c8e9315a97bac88adef214c1c84675d9a704a0ed", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-d466142bddd904e6", "migration": false}, {"id": "14.0-844a9c88ce874ea2", "cves": [], "html": "<p>Add <span>psql</span> command <code>\\dX</code> to list extended statistics objects (Tatsuro Yamada) <a href=\"https://postgr.es/c/ad600bba0\">\u00a7</a></p>", "text": "Add psql command \\dX to list extended statistics objects (Tatsuro Yamada) \u00a7", "title": "Add psql command \\dX to list extended statistics objects", "commits": ["ad600bba0"], "section": "Client Applications / psql", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.11.3", "source_hash": "a7b07b69238e1137a37621a79a8d411db28f191214484d8dfaeef0023625947a", "section_path": ["Client Applications", "psql"], "commit_groups": [["ad600bba0"]], "identity_text": "Add psql command \\dX to list extended statistics objects (Tatsuro Yamada)", "commit_aliases": ["ad600bba0"], "source_commits": ["ad600bba0"], "source_entry_id": "14.0/changes/151", "db_id": "67aa66fcf5c6948295873ef5d0ce8962", "patch_ids": ["5ac4980da9262c65cca6ee8c21c89a21"], "statement_hash": "d6373c61e73976bc472b6b5e9804ccd0c273c449912079db6b54b0e26e9153b5", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-844a9c88ce874ea2", "migration": false}, {"id": "14.0-dac65b9817b15374-2", "cves": [], "html": "<p>Fix <span>psql</span>'s <code>\\dT</code> to understand array syntax and backend grammar aliases, like <code>int</code> for <code>integer</code> (Greg Sabino Mullane, Tom Lane) <a href=\"https://postgr.es/c/a3027e1e7\">\u00a7</a></p>", "text": "Fix psql's \\dT to understand array syntax and backend grammar aliases, like int for integer (Greg Sabino Mullane, Tom Lane) \u00a7", "title": "Fix psql's \\dT to understand array syntax and backend grammar aliases, like int for integer", "commits": ["a3027e1e7"], "section": "Client Applications / psql", "category": "bugfix", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.11.3", "source_hash": "33a7cf5145180672f2064456f159663bddb3eee845ace3d0b2e5bbf2148b01ed", "section_path": ["Client Applications", "psql"], "commit_groups": [["a3027e1e7"]], "identity_text": "Fix psql's \\dT to understand array syntax and backend grammar aliases, like int for integer (Greg Sabino Mullane, Tom Lane)", "commit_aliases": ["a3027e1e7"], "source_commits": ["a3027e1e7"], "source_entry_id": "14.0/changes/152", "db_id": "66aa0c0195a82c942aaf84c756416274", "patch_ids": ["b5516ad5d36eb03d62cefebf100e5ded"], "statement_hash": "1a3bb4f5eeee72c0b61836e23f02e77ff76d2e19f018307e4518aca366134a97", "relations": [{"rule": 2, "type": "related", "target": "a4fda9d7a35aba06e4d6f037a5875a61", "evidence": {"same_day": true, "patch_ids": ["b5516ad5d36eb03d62cefebf100e5ded"], "ambiguous_patch_ids": ["b5516ad5d36eb03d62cefebf100e5ded"]}}], "category_label": "Bug fixes", "url": "/docs/compare/?release=14.0#14.0-dac65b9817b15374-2", "migration": false}, {"id": "14.0-13ba988cfbe631d7", "cves": [], "html": "<p>When editing the previous query or a file with <span>psql</span>'s <code>\\e</code>, or using <code>\\ef</code> and <code>\\ev</code>, ignore the results if the editor exits without saving (Laurenz Albe) <a href=\"https://postgr.es/c/55873a00e\">\u00a7</a></p>\n<p>Previously, such edits would load the previous query into the query buffer, and typically execute it immediately. This was deemed to be probably not what the user wants.</p>", "text": "When editing the previous query or a file with psql's \\e, or using \\ef and \\ev, ignore the results if the editor exits without saving (Laurenz Albe) \u00a7 Previously, such edits would load the previous query into the query buffer, and typically execute it immediately. This was deemed to be probably not what the user wants.", "title": "When editing the previous query or a file with psql's \\e, or using \\ef and \\ev, ignore the results if the editor exits without saving", "commits": ["55873a00e"], "section": "Client Applications / psql", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.11.3", "source_hash": "d47bde6f516ac79fd2efde38a914d7563fcb64311b948c1520df33a2e8df3723", "section_path": ["Client Applications", "psql"], "commit_groups": [["55873a00e"]], "identity_text": "When editing the previous query or a file with psql's \\e, or using \\ef and \\ev, ignore the results if the editor exits without saving (Laurenz Albe) Previously, such edits would load the previous query into the query buffer, and typically execute it immediately. This was deemed to be probably not what the user wants.", "commit_aliases": ["55873a00e"], "source_commits": ["55873a00e"], "source_entry_id": "14.0/changes/153", "db_id": "4cd8f621c01721fccd6a2fdf1627b6b9", "patch_ids": ["79bcedbd40460747196fa951ad2ff284"], "statement_hash": "9cad4605287f9a3867ec52752142a5737dd226fa8473049a48bd4ddb6d2d0a7d", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-13ba988cfbe631d7", "migration": false}, {"id": "14.0-6b91751e88ac5aeb", "cves": [], "html": "<p>Improve tab completion (Vignesh C, Michael Paquier, Justin Pryzby, Georgios Kokolatos, Julien Rouhaud) <a href=\"https://postgr.es/c/c273d9d8c\">\u00a7</a> <a href=\"https://postgr.es/c/f1af75c5f\">\u00a7</a> <a href=\"https://postgr.es/c/1f75b4541\">\u00a7</a> <a href=\"https://postgr.es/c/7307df16a\">\u00a7</a> <a href=\"https://postgr.es/c/0baf82fa0\">\u00a7</a> <a href=\"https://postgr.es/c/0b46e82c0\">\u00a7</a> <a href=\"https://postgr.es/c/bf0aa7c4b\">\u00a7</a> <a href=\"https://postgr.es/c/3f238b882\">\u00a7</a> <a href=\"https://postgr.es/c/e1c02d92a\">\u00a7</a> <a href=\"https://postgr.es/c/e6b8e83b9\">\u00a7</a> <a href=\"https://postgr.es/c/5bc09a747\">\u00a7</a> <a href=\"https://postgr.es/c/6b40d9bdb\">\u00a7</a> <a href=\"https://postgr.es/c/5b2266e33\">\u00a7</a> <a href=\"https://postgr.es/c/d1fcbde57\">\u00a7</a> <a href=\"https://postgr.es/c/81e094bdf\">\u00a7</a> <a href=\"https://postgr.es/c/22b2dec31\">\u00a7</a> <a href=\"https://postgr.es/c/6dd1042ed\">\u00a7</a> <a href=\"https://postgr.es/c/1906cc07d\">\u00a7</a></p>", "text": "Improve tab completion (Vignesh C, Michael Paquier, Justin Pryzby, Georgios Kokolatos, Julien Rouhaud) \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7", "title": "Improve tab completion", "commits": ["0b46e82c0", "0baf82fa0", "1906cc07d", "1f75b4541", "22b2dec31", "3f238b882", "5b2266e33", "5bc09a747", "6b40d9bdb", "6dd1042ed", "7307df16a", "81e094bdf", "bf0aa7c4b", "c273d9d8c", "d1fcbde57", "e1c02d92a", "e6b8e83b9", "f1af75c5f"], "section": "Client Applications / psql", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.11.3", "source_hash": "e35a7a33d8b36ae3b584452f858d01e080992a90b5eb909415972e6478847ee2", "section_path": ["Client Applications", "psql"], "commit_groups": [["0b46e82c0"], ["0baf82fa0"], ["1906cc07d"], ["1f75b4541"], ["22b2dec31"], ["3f238b882"], ["5b2266e33"], ["5bc09a747"], ["6b40d9bdb"], ["6dd1042ed"], ["7307df16a"], ["81e094bdf"], ["bf0aa7c4b"], ["c273d9d8c"], ["d1fcbde57"], ["e1c02d92a"], ["e6b8e83b9"], ["f1af75c5f"]], "identity_text": "Improve tab completion (Vignesh C, Michael Paquier, Justin Pryzby, Georgios Kokolatos, Julien Rouhaud)", "commit_aliases": ["0b46e82c0", "0baf82fa0", "1906cc07d", "1f75b4541", "22b2dec31", "3f238b882", "5b2266e33", "5bc09a747", "6b40d9bdb", "6dd1042ed", "7307df16a", "81e094bdf", "bf0aa7c4b", "c273d9d8c", "d1fcbde57", "e1c02d92a", "e6b8e83b9", "f1af75c5f"], "source_commits": ["0b46e82c0", "0baf82fa0", "1906cc07d", "1f75b4541", "22b2dec31", "3f238b882", "5b2266e33", "5bc09a747", "6b40d9bdb", "6dd1042ed", "7307df16a", "81e094bdf", "bf0aa7c4b", "c273d9d8c", "d1fcbde57", "e1c02d92a", "e6b8e83b9", "f1af75c5f"], "source_entry_id": "14.0/changes/154", "db_id": "def03cbe9f62e255ae7c56b34c2cf4cf", "patch_ids": ["19c2e452f31c1f78bc30cee626d4e046", "1f78fefb97826f3f0984edc343755a1a", "2250160b56c4a0c82c9ffe177f4311ab", "47832978418033aa0c6d9b6295f5f86b", "4bd6ec5e5fe752e213462883f036712a", "5fb0e1380cee165e6b9b7c2c188452fd", "5ff2d49a10ee28fd88b14916e9c11744", "72e676a91f781a19e462d153ba741774", "8084231ccbbc0ed77c1fbc85ccf7b5cb", "889c0bddf420b6e65241efe013b7d831", "976f50b8a2abb94a1afba60e9c464da5", "a8c7983cde9cb3727dd35f3d4ef2c77a", "a952e7cdac244ed3009ca418a217adb6", "c482e1e400896510d1d01eee6b06e17a", "c6ced02cc4e046d34e4343b93facca5a", "c9203c3195b93f33f60c65323ace0c07", "dd0bf60d07c849aee8e9f35e9c808a9b", "f45a47bc027261885f5b2c4cc7b16504"], "statement_hash": "747f43354171f2f3e1a528acfa1abd231e4fcafedf85eb38a9e5ff90617a8f59", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-6b91751e88ac5aeb", "migration": false}, {"id": "14.0-8241055d9d58fdb9", "cves": [], "html": "<p>Add command-line utility <a href=\"/docs/14/app-pgamcheck.html\" title=\"pg_amcheck\"><span>pg_amcheck</span></a> to simplify running <code>contrib/amcheck</code> tests on many relations (Mark Dilger) <a href=\"https://postgr.es/c/970609283\">\u00a7</a></p>", "text": "Add command-line utility pg_amcheck to simplify running contrib/amcheck tests on many relations (Mark Dilger) \u00a7", "title": "Add command-line utility pg_amcheck to simplify running contrib/amcheck tests on many relations", "commits": ["970609283"], "section": "Server Applications", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.12", "source_hash": "25024b09c866ea4904e1833f0bf16146d7e1afac6f4c4f152e1a07fb41888c60", "section_path": ["Server Applications"], "commit_groups": [["970609283"]], "identity_text": "Add command-line utility pg_amcheck to simplify running contrib/amcheck tests on many relations (Mark Dilger)", "commit_aliases": ["970609283"], "source_commits": ["970609283"], "source_entry_id": "14.0/changes/155", "db_id": "ef252ac122b7272924161bb70439ff12", "patch_ids": ["c0ebacf03debdb56abfe20345624c892"], "statement_hash": "4f2dc0563aeb5932719e1e083bd4341349c864ccd48a7bd01d672c89ca4ac2a2", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-8241055d9d58fdb9", "migration": false}, {"id": "14.0-04170f98ce8e014d", "cves": [], "html": "<p>Add <code>--no-instructions</code> option to <a href=\"/docs/14/app-initdb.html\" title=\"initdb\"><span>initdb</span></a> (Magnus Hagander) <a href=\"https://postgr.es/c/e09155bd6\">\u00a7</a></p>\n<p>This suppresses the server startup instructions that are normally printed.</p>", "text": "Add --no-instructions option to initdb (Magnus Hagander) \u00a7 This suppresses the server startup instructions that are normally printed.", "title": "Add --no-instructions option to initdb", "commits": ["e09155bd6"], "section": "Server Applications", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.12", "source_hash": "f7e023ba6f034e8014617fcb64220e8be5b548d3ef8eaab02ea32b8fc686f54e", "section_path": ["Server Applications"], "commit_groups": [["e09155bd6"]], "identity_text": "Add --no-instructions option to initdb (Magnus Hagander) This suppresses the server startup instructions that are normally printed.", "commit_aliases": ["e09155bd6"], "source_commits": ["e09155bd6"], "source_entry_id": "14.0/changes/156", "db_id": "b10a3994c55a0e7ae07e75b782d258c3", "patch_ids": ["f453502148da3386d0c9fdb0af18fc8d"], "statement_hash": "da029cc4fced07b4a5c84a822a5d893027d6bb212a73879cde7bf4c5dd80b002", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-04170f98ce8e014d", "migration": false}, {"id": "14.0-94e2d103ca086da6", "cves": [], "html": "<p>Stop <a href=\"/docs/14/pgupgrade.html\" title=\"pg_upgrade\"><span>pg_upgrade</span></a> from creating <code>analyze_new_cluster</code> script (Magnus Hagander) <a href=\"https://postgr.es/c/8f113698b\">\u00a7</a></p>\n<p>Instead, give comparable <a href=\"/docs/14/app-vacuumdb.html\" title=\"vacuumdb\"><span>vacuumdb</span></a> instructions.</p>", "text": "Stop pg_upgrade from creating analyze_new_cluster script (Magnus Hagander) \u00a7 Instead, give comparable vacuumdb instructions.", "title": "Stop pg_upgrade from creating analyze_new_cluster script", "commits": ["8f113698b"], "section": "Server Applications", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.12", "source_hash": "dc38b1f9d5ec318e8423b52333fe8291f7f6cefba503d373c89f514b55ac2fee", "section_path": ["Server Applications"], "commit_groups": [["8f113698b"]], "identity_text": "Stop pg_upgrade from creating analyze_new_cluster script (Magnus Hagander) Instead, give comparable vacuumdb instructions.", "commit_aliases": ["8f113698b"], "source_commits": ["8f113698b"], "source_entry_id": "14.0/changes/157", "db_id": "41addd2e60211cb0aa294ff65760eee6", "patch_ids": ["4eee81499f4dc0b940909fb4e77a231e"], "statement_hash": "7f173acea9b51d03c420511fb7e9506e04f2fba53ee429dfc6174ff9bf1f0723", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-94e2d103ca086da6", "migration": false}, {"id": "14.0-25e6fada62b79ef2", "cves": [], "html": "<p>Remove support for the <a href=\"/docs/14/app-postgres.html\" title=\"postgres\"><span>postmaster</span></a> <code>-o</code> option (Magnus Hagander) <a href=\"https://postgr.es/c/d2e4bf688\">\u00a7</a></p>\n<p>This option was unnecessary since all passed options could already be specified directly.</p>", "text": "Remove support for the postmaster -o option (Magnus Hagander) \u00a7 This option was unnecessary since all passed options could already be specified directly.", "title": "Remove support for the postmaster -o option", "commits": ["d2e4bf688"], "section": "Server Applications", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.12", "source_hash": "4682c95be698cc8f23770836edf5e5d42726cdbfc5f63aae6ed0c3fd482be429", "section_path": ["Server Applications"], "commit_groups": [["d2e4bf688"]], "identity_text": "Remove support for the postmaster -o option (Magnus Hagander) This option was unnecessary since all passed options could already be specified directly.", "commit_aliases": ["d2e4bf688"], "source_commits": ["d2e4bf688"], "source_entry_id": "14.0/changes/158", "db_id": "07cc094c093e7de4ce5dd108b0e5fccd", "patch_ids": ["81149a51739bfd9045424e93c07b2cf3"], "statement_hash": "2299068769a0aae88d25c13f21a1bb0757ab8f7146eb45999767984709673eca", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-25e6fada62b79ef2", "migration": false}, {"id": "14.0-130ecbf2e7e1e0ec", "cves": [], "html": "<p>Rename \"Default Roles\" to <a href=\"/docs/14/predefined-roles.html\" title=\"22.5.\u00a0Predefined Roles\">\"Predefined Roles\"</a> (Bruce Momjian, Stephen Frost) <a href=\"https://postgr.es/c/c9c41c7a3\">\u00a7</a></p>", "text": "Rename \"Default Roles\" to \"Predefined Roles\" (Bruce Momjian, Stephen Frost) \u00a7", "title": "Rename \"Default Roles\" to \"Predefined Roles\"", "commits": ["c9c41c7a3"], "section": "Documentation", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.13", "source_hash": "503784be175c69bf9e58f0fbf4d91ccb3ec4a820539ebe0dd4f66db37415d729", "section_path": ["Documentation"], "commit_groups": [["c9c41c7a3"]], "identity_text": "Rename \"Default Roles\" to \"Predefined Roles\" (Bruce Momjian, Stephen Frost)", "commit_aliases": ["c9c41c7a3"], "source_commits": ["c9c41c7a3"], "source_entry_id": "14.0/changes/159", "db_id": "0cb09430a0fb79fa473dd4194016aae3", "patch_ids": ["63c92850339b6965a1dcc15d0ff0bdbf"], "statement_hash": "aa88a38e8c5c0c33fed73a32c4e512bcd583a8f8b06137d26959f0fd397305a1", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-130ecbf2e7e1e0ec", "migration": false}, {"id": "14.0-54c7d360a528e2ae", "cves": [], "html": "<p>Add documentation for the <a href=\"/docs/14/functions-math.html#FUNCTION-FACTORIAL\"><code>factorial()</code></a> function (Peter Eisentraut) <a href=\"https://postgr.es/c/4c5cf5431\">\u00a7</a></p>\n<p>With the removal of the ! operator in this release, <code>factorial()</code> is the only built-in way to compute a factorial.</p>", "text": "Add documentation for the factorial() function (Peter Eisentraut) \u00a7 With the removal of the ! operator in this release, factorial() is the only built-in way to compute a factorial.", "title": "Add documentation for the factorial() function", "commits": ["4c5cf5431"], "section": "Documentation", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.13", "source_hash": "c0a2769aa450329505a03f1df02dd369b5e49af308c9a1cf29fda53812ae2408", "section_path": ["Documentation"], "commit_groups": [["4c5cf5431"]], "identity_text": "Add documentation for the factorial() function (Peter Eisentraut) With the removal of the ! operator in this release, factorial() is the only built-in way to compute a factorial.", "commit_aliases": ["4c5cf5431"], "source_commits": ["4c5cf5431"], "source_entry_id": "14.0/changes/160", "db_id": "c036a6ed8a104844703846c614022fbe", "patch_ids": ["429d7ca14629576f20ecc0b25c6d353f"], "statement_hash": "4e1a3a9cbe96cadedbbbecf3dc4bf1a530ad25bd37d03f695840d874eb2efa03", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-54c7d360a528e2ae", "migration": false}, {"id": "14.0-a5aa8c1f6634ff3d", "cves": [], "html": "<p>Add configure option <a href=\"/docs/14/install-procedure.html#CONFIGURE-OPTIONS-FEATURES\" title=\"17.4.1.2.\u00a0PostgreSQL Features\"><code>--with-ssl={openssl}</code></a> to allow future choice of the SSL library to use (Daniel Gustafsson, Michael Paquier) <a href=\"https://postgr.es/c/fe61df7f8\">\u00a7</a></p>\n<p>The spelling <code>--with-openssl</code> is kept for compatibility.</p>", "text": "Add configure option --with-ssl={openssl} to allow future choice of the SSL library to use (Daniel Gustafsson, Michael Paquier) \u00a7 The spelling --with-openssl is kept for compatibility.", "title": "Add configure option --with-ssl={openssl} to allow future choice of the SSL library to use", "commits": ["fe61df7f8"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.14", "source_hash": "91a6cf99a3749a05051aa6343ed017a621737f1913bf70e2283f387bf2333cbb", "section_path": ["Source Code"], "commit_groups": [["fe61df7f8"]], "identity_text": "Add configure option --with-ssl={openssl} to allow future choice of the SSL library to use (Daniel Gustafsson, Michael Paquier) The spelling --with-openssl is kept for compatibility.", "commit_aliases": ["fe61df7f8"], "source_commits": ["fe61df7f8"], "source_entry_id": "14.0/changes/161", "db_id": "7fd05dcd14d4ba6af063ba52cdb77f06", "patch_ids": ["442ac98acd0e3848d145a6a016642a6f"], "statement_hash": "d83b645e69e73e077a9c0070e02a7aa9019c38200c95979aa27321cca288b2a4", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-a5aa8c1f6634ff3d", "migration": false}, {"id": "14.0-d9b672fcc3413ffe", "cves": [], "html": "<p>Add support for <a href=\"/docs/14/runtime-config-connection.html#GUC-UNIX-SOCKET-DIRECTORIES\">abstract Unix-domain sockets</a> (Peter Eisentraut) <a href=\"https://postgr.es/c/c9f0624bc\">\u00a7</a></p>\n<p>This is currently supported on <span>Linux</span> and <span>Windows</span>.</p>", "text": "Add support for abstract Unix-domain sockets (Peter Eisentraut) \u00a7 This is currently supported on Linux and Windows.", "title": "Add support for abstract Unix-domain sockets", "commits": ["c9f0624bc"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.14", "source_hash": "a12f683b977a45c5b7f27c52838c2bbde40b994ea8f58d931476ef5d473b01cd", "section_path": ["Source Code"], "commit_groups": [["c9f0624bc"]], "identity_text": "Add support for abstract Unix-domain sockets (Peter Eisentraut) This is currently supported on Linux and Windows.", "commit_aliases": ["c9f0624bc"], "source_commits": ["c9f0624bc"], "source_entry_id": "14.0/changes/162", "db_id": "6ced47e07ddfc1177f31b894a30e87d5", "patch_ids": ["255f06d52b29b2fc6c09c9f64466a7bf"], "statement_hash": "2ffadc53ab04d858481736116531cf829e576f1a313eaa114f65db9848757d73", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-d9b672fcc3413ffe", "migration": false}, {"id": "14.0-edcf6d362b87e066", "cves": [], "html": "<p>Allow Windows to properly handle files larger than four gigabytes (Juan Jos\u00e9 Santamar\u00eda Flecha) <a href=\"https://postgr.es/c/bed90759f\">\u00a7</a></p>\n<p>For example this allows <a href=\"/docs/14/sql-copy.html\" title=\"COPY\"><code>COPY,</code></a> <a href=\"/docs/14/install-procedure.html#CONFIGURE-OPTIONS-MISC\" title=\"17.4.1.5.\u00a0Miscellaneous\"><acronym>WAL</acronym></a> files, and relation segment files to be larger than four gigabytes.</p>", "text": "Allow Windows to properly handle files larger than four gigabytes (Juan Jos\u00e9 Santamar\u00eda Flecha) \u00a7 For example this allows COPY, WAL files, and relation segment files to be larger than four gigabytes.", "title": "Allow Windows to properly handle files larger than four gigabytes", "commits": ["bed90759f"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.14", "source_hash": "876d69f0523a8396d2beb8a8bb9cfd67185f8de8103193944c4abd96ff7e55b7", "section_path": ["Source Code"], "commit_groups": [["bed90759f"]], "identity_text": "Allow Windows to properly handle files larger than four gigabytes (Juan Jos\u00e9 Santamar\u00eda Flecha) For example this allows COPY, WAL files, and relation segment files to be larger than four gigabytes.", "commit_aliases": ["bed90759f"], "source_commits": ["bed90759f"], "source_entry_id": "14.0/changes/163", "db_id": "355e5deb15b158b78554e356f2b609fd", "patch_ids": ["98fb9f1c4ac1e7b8092df211e73c338d"], "statement_hash": "b2bf54329f391d238fa2709add0fdb4b5c7fa07de6c643911b923611d58340ed", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-edcf6d362b87e066", "migration": false}, {"id": "14.0-e80ea3478115e1cf", "cves": [], "html": "<p>Add server parameter <a href=\"/docs/14/runtime-config-developer.html#GUC-DEBUG-DISCARD-CACHES\">debug_discard_caches</a> to control cache flushing for test purposes (Craig Ringer) <a href=\"https://postgr.es/c/4656e3d66\">\u00a7</a> <a href=\"https://postgr.es/c/d04770801\">\u00a7</a> <a href=\"https://postgr.es/c/6201fa3c1\">\u00a7</a></p>\n<p>Previously this behavior could only be set at compile time. To invoke it during <span>initdb</span>, use the new option <code>--discard-caches</code>.</p>", "text": "Add server parameter debug_discard_caches to control cache flushing for test purposes (Craig Ringer) \u00a7 \u00a7 \u00a7 Previously this behavior could only be set at compile time. To invoke it during initdb, use the new option --discard-caches.", "title": "Add server parameter debug_discard_caches to control cache flushing for test purposes", "commits": ["4656e3d66", "6201fa3c1", "d04770801"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.14", "source_hash": "9004bf9a657027d2e1c6f96a344adebcb2cc7673b0d26c9a272f586b08418808", "section_path": ["Source Code"], "commit_groups": [["4656e3d66"], ["6201fa3c1"], ["d04770801"]], "identity_text": "Add server parameter guc-debug-discard-caches to control cache flushing for test purposes (Craig Ringer) Previously this behavior could only be set at compile time. To invoke it during initdb, use the new option --discard-caches.", "commit_aliases": ["4656e3d66", "6201fa3c1", "d04770801"], "source_commits": ["4656e3d66", "6201fa3c1", "d04770801"], "source_entry_id": "14.0/changes/164", "db_id": "99d6a18986bda104a24824b31e1f8b82", "patch_ids": ["84502cb37de3cf7d175b60bc01eb4336", "c0b02fece1200532e05e8afed52d5d1c", "df3eb1f6db9451cb6b8d6d3b082bd7b2"], "statement_hash": "db0be5d5f23a3fa4726c9b0bd9ae45165275c1a3a7649bd5721ae6fe272478ab", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-e80ea3478115e1cf", "migration": false}, {"id": "14.0-0fb34ab77d5ba9ca", "cves": [], "html": "<p>Various improvements in <span>valgrind</span> error detection ability (\u00c1lvaro Herrera, Peter Geoghegan) <a href=\"https://postgr.es/c/1e0dfd166\">\u00a7</a> <a href=\"https://postgr.es/c/46ef520b9\">\u00a7</a> <a href=\"https://postgr.es/c/a766d6ca2\">\u00a7</a></p>", "text": "Various improvements in valgrind error detection ability (\u00c1lvaro Herrera, Peter Geoghegan) \u00a7 \u00a7 \u00a7", "title": "Various improvements in valgrind error detection ability", "commits": ["1e0dfd166", "46ef520b9", "a766d6ca2"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.14", "source_hash": "0edbe917a896beaa661a426f7d94f60bda728ac1fab688b19241464c988495d5", "section_path": ["Source Code"], "commit_groups": [["1e0dfd166"], ["46ef520b9"], ["a766d6ca2"]], "identity_text": "Various improvements in valgrind error detection ability (\u00c1lvaro Herrera, Peter Geoghegan)", "commit_aliases": ["1e0dfd166", "46ef520b9", "a766d6ca2"], "source_commits": ["1e0dfd166", "46ef520b9", "a766d6ca2"], "source_entry_id": "14.0/changes/165", "db_id": "1709d0b10993acf05f6f1db2296814da", "patch_ids": ["31d2637c0ee7b1bfa99376d5c00ea251", "7b852bec390d61b95fd8b66de0ed4d4a", "a0d92565e0236a336d707a7ac63096ba"], "statement_hash": "8bf42bf1f8e3fa4cefff3666e03463cf83396d121d582a111075f74c2e9961a1", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-0fb34ab77d5ba9ca", "migration": false}, {"id": "14.0-21075be97d42a33f", "cves": [], "html": "<p>Add a test module for the regular expression package (Tom Lane) <a href=\"https://postgr.es/c/ca8217c10\">\u00a7</a></p>", "text": "Add a test module for the regular expression package (Tom Lane) \u00a7", "title": "Add a test module for the regular expression package", "commits": ["ca8217c10"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.14", "source_hash": "7b60d191bfb6f155cce5fe51dd35695dedf078533e25435c07cc4c2683b14db5", "section_path": ["Source Code"], "commit_groups": [["ca8217c10"]], "identity_text": "Add a test module for the regular expression package (Tom Lane)", "commit_aliases": ["ca8217c10"], "source_commits": ["ca8217c10"], "source_entry_id": "14.0/changes/166", "db_id": "5cc75d4bb574b4be88656def8b3f443f", "patch_ids": ["05bdfb35fda8b9db98a765acb47dcfe9"], "statement_hash": "d5cfab2f5d525e10c64824661b52aa14131387c4cc3e746f74b8c7717ce5bf65", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-21075be97d42a33f", "migration": false}, {"id": "14.0-3ef61bd8dfaf8c16", "cves": [], "html": "<p>Add support for <span>LLVM</span> version 12 (Andres Freund) <a href=\"https://postgr.es/c/6c57f2ed1\">\u00a7</a></p>", "text": "Add support for LLVM version 12 (Andres Freund) \u00a7", "title": "Add support for LLVM version 12", "commits": ["6c57f2ed1"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.14", "source_hash": "6433da198694b598db2dcaebf2d8934b700afd627910631a4e668f416c426307", "section_path": ["Source Code"], "commit_groups": [["6a192c77d", "6c57f2ed1", "90eb343ef", "fa7a52fb9"]], "identity_text": "Add support for LLVM version 12 (Andres Freund)", "commit_aliases": ["6a192c77d", "6c57f2ed1", "90eb343ef", "fa7a52fb9"], "source_commits": ["6c57f2ed1"], "source_entry_id": "14.0/changes/167", "db_id": "953eea49ea13be68e1ba18f192f409e3", "patch_ids": ["6873195cd38f6166a1b0f007a1b9d943"], "statement_hash": "815cbfc3e6a46149a2cb7081af440cff96b7fab7425c54ef62277ca524793e90", "relations": [{"rule": 2, "type": "related", "target": "04eea6763c68cc0f210cb5d49d7f9a45", "evidence": {"same_day": false, "patch_ids": ["6873195cd38f6166a1b0f007a1b9d943"]}}, {"rule": 2, "type": "related", "target": "aed82f7d691f0c4b2650925d9b422ec1", "evidence": {"same_day": false, "patch_ids": ["6873195cd38f6166a1b0f007a1b9d943"]}}, {"rule": 2, "type": "related", "target": "fff2593fb3db34e7d28cf52cad770917", "evidence": {"same_day": false, "patch_ids": ["6873195cd38f6166a1b0f007a1b9d943"]}}], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-3ef61bd8dfaf8c16", "migration": false}, {"id": "14.0-cbbc871aa33cc304", "cves": [], "html": "<p>Change SHA1, SHA2, and MD5 hash computations to use the <span>OpenSSL</span> <acronym>EVP API</acronym> (Michael Paquier) <a href=\"https://postgr.es/c/4f48a6fbe\">\u00a7</a> <a href=\"https://postgr.es/c/b67b57a96\">\u00a7</a> <a href=\"https://postgr.es/c/a8ed6bb8f\">\u00a7</a> <a href=\"https://postgr.es/c/e6bdfd970\">\u00a7</a></p>\n<p>This is more modern and supports <acronym>FIPS</acronym> mode.</p>", "text": "Change SHA1, SHA2, and MD5 hash computations to use the OpenSSL EVP API (Michael Paquier) \u00a7 \u00a7 \u00a7 \u00a7 This is more modern and supports FIPS mode.", "title": "Change SHA1, SHA2, and MD5 hash computations to use the OpenSSL EVP API", "commits": ["4f48a6fbe", "a8ed6bb8f", "b67b57a96", "e6bdfd970"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.14", "source_hash": "2d2782161ae6e66965ee703c3f18a30386f6b3a9be9d3d88588a3070fd818dcb", "section_path": ["Source Code"], "commit_groups": [["4f48a6fbe"], ["a8ed6bb8f"], ["b67b57a96"], ["e6bdfd970"]], "identity_text": "Change SHA1, SHA2, and MD5 hash computations to use the OpenSSL EVP API (Michael Paquier) This is more modern and supports FIPS mode.", "commit_aliases": ["4f48a6fbe", "a8ed6bb8f", "b67b57a96", "e6bdfd970"], "source_commits": ["4f48a6fbe", "a8ed6bb8f", "b67b57a96", "e6bdfd970"], "source_entry_id": "14.0/changes/168", "db_id": "14dec3f7f8e0627cf45f0ed20a78a3d5", "patch_ids": ["01be2c441928cabfae31a69681545499", "505db812527846958a83ecbb74507622", "663d03b25af4d0c3fd99d8b2295e6a53", "d42e74619ff55d60c88b985fb55ac67c"], "statement_hash": "dff9073056e20f535699537b95dab31172b221c56358625ad14d0e2c11df53ed", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-cbbc871aa33cc304", "migration": false}, {"id": "14.0-3295740080fb9572", "cves": [], "html": "<p>Remove separate build-time control over the choice of random number generator (Daniel Gustafsson) <a href=\"https://postgr.es/c/16f96c74d\">\u00a7</a></p>\n<p>This is now always determined by the choice of SSL library.</p>", "text": "Remove separate build-time control over the choice of random number generator (Daniel Gustafsson) \u00a7 This is now always determined by the choice of SSL library.", "title": "Remove separate build-time control over the choice of random number generator", "commits": ["16f96c74d"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.14", "source_hash": "14257d34ebcbbe29063a6250a63305ec016a18ede4200875625b09e798ec4efa", "section_path": ["Source Code"], "commit_groups": [["16f96c74d"]], "identity_text": "Remove separate build-time control over the choice of random number generator (Daniel Gustafsson) This is now always determined by the choice of SSL library.", "commit_aliases": ["16f96c74d"], "source_commits": ["16f96c74d"], "source_entry_id": "14.0/changes/169", "db_id": "0aea3c0f836cf5fb160118bc9fcffb5f", "patch_ids": ["4030743842d5e72afe2f11221c379495"], "statement_hash": "139448610e9f59d0c69ed274f9339347145bd5e978192d2595a7f78f95abe942", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-3295740080fb9572", "migration": false}, {"id": "14.0-99217ab9f2d6bd92", "cves": [], "html": "<p>Add direct conversion routines between EUC_TW and Big5 encodings (Heikki Linnakangas) <a href=\"https://postgr.es/c/6c5576075\">\u00a7</a></p>", "text": "Add direct conversion routines between EUC_TW and Big5 encodings (Heikki Linnakangas) \u00a7", "title": "Add direct conversion routines between EUC_TW and Big5 encodings", "commits": ["6c5576075"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.14", "source_hash": "7983857bb346fa8c0d92a0d82f0236d6f18349f796c9064e35235ce77c5665d5", "section_path": ["Source Code"], "commit_groups": [["6c5576075"]], "identity_text": "Add direct conversion routines between EUC_TW and Big5 encodings (Heikki Linnakangas)", "commit_aliases": ["6c5576075"], "source_commits": ["6c5576075"], "source_entry_id": "14.0/changes/170", "db_id": "780e0c89e60a1199e649a750522c8022", "patch_ids": ["ade10d924bbb73b1d84d08cfe79477f8"], "statement_hash": "f556d0ecb5d8fff79985c368ea358c44c6e9bb75fd7cc5ad8ee4bd1d260e0d90", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-99217ab9f2d6bd92", "migration": false}, {"id": "14.0-18e2fc9c488788b8", "cves": [], "html": "<p>Add collation version support for <span>FreeBSD</span> (Thomas Munro) <a href=\"https://postgr.es/c/ca051d8b1\">\u00a7</a></p>", "text": "Add collation version support for FreeBSD (Thomas Munro) \u00a7", "title": "Add collation version support for FreeBSD", "commits": ["ca051d8b1"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.14", "source_hash": "db7a9f1036327d411cfbf382b67894f89814e530b9695a8277ad386492220847", "section_path": ["Source Code"], "commit_groups": [["ca051d8b1"]], "identity_text": "Add collation version support for FreeBSD (Thomas Munro)", "commit_aliases": ["ca051d8b1"], "source_commits": ["ca051d8b1"], "source_entry_id": "14.0/changes/171", "db_id": "e0a3bb652d2ee557c822810dae0a4bdf", "patch_ids": ["5431591f3215ff9dedbca3c13126c1a9"], "statement_hash": "09efd4999da181d0e7bdbaa28f873fe9fc2bceda2f883dcf7ff2eb30f6ac8eb6", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-18e2fc9c488788b8", "migration": false}, {"id": "14.0-42c5e28743b7b930", "cves": [], "html": "<p>Add <a href=\"/docs/14/index-api.html\" title=\"62.1.\u00a0Basic API Structure for Indexes\"><code>amadjustmembers</code></a> to the index access method <acronym>API</acronym> (Tom Lane) <a href=\"https://postgr.es/c/9f9682783\">\u00a7</a></p>\n<p>This allows an index access method to provide validity checking during creation of a new operator class or family.</p>", "text": "Add amadjustmembers to the index access method API (Tom Lane) \u00a7 This allows an index access method to provide validity checking during creation of a new operator class or family.", "title": "Add amadjustmembers to the index access method API", "commits": ["9f9682783"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.14", "source_hash": "92fdeb4b8fcd5f74a298f4232eb4274f6ee5105a80c31254a7a85b547fec1064", "section_path": ["Source Code"], "commit_groups": [["9f9682783"]], "identity_text": "Add amadjustmembers to the index access method API (Tom Lane) This allows an index access method to provide validity checking during creation of a new operator class or family.", "commit_aliases": ["9f9682783"], "source_commits": ["9f9682783"], "source_entry_id": "14.0/changes/172", "db_id": "67dcbb97d57520263ed5b5b24c08cf00", "patch_ids": ["5475bbdb2bfd6a7f784d6f00970a575e"], "statement_hash": "616510c5198426be5bb7b527589c35c426e15e62b36d17defaa3b1263a48fe9d", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-42c5e28743b7b930", "migration": false}, {"id": "14.0-0a1ddedee2c3b2ed", "cves": [], "html": "<p>Provide feature-test macros in <code>libpq-fe.h</code> for recently-added <span>libpq</span> features (Tom Lane, \u00c1lvaro Herrera) <a href=\"https://postgr.es/c/6991e774e\">\u00a7</a></p>\n<p>Historically, applications have usually used compile-time checks of <code>PG_VERSION_NUM</code> to test whether a feature is available. But that's normally the server version, which might not be a good guide to <span>libpq</span>'s version. <code>libpq-fe.h</code> now offers <code>#define</code> symbols denoting application-visible features added in v14; the intent is to keep adding symbols for such features in future versions.</p>", "text": "Provide feature-test macros in libpq-fe.h for recently-added libpq features (Tom Lane, \u00c1lvaro Herrera) \u00a7 Historically, applications have usually used compile-time checks of PG_VERSION_NUM to test whether a feature is available. But that's normally the server version, which might not be a good guide to libpq's version. libpq-fe.h now offers #define symbols denoting application-visible features added in v14; the intent is to keep adding symbols for such features in future versions.", "title": "Provide feature-test macros in libpq-fe.h for recently-added libpq features", "commits": ["6991e774e"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.14", "source_hash": "b52c02cf436fdf2a185a9b3efa11b83d067d2fcb64c4f9bdb0f8b6973cffeaf0", "section_path": ["Source Code"], "commit_groups": [["6991e774e"]], "identity_text": "Provide feature-test macros in libpq-fe.h for recently-added libpq features (Tom Lane, \u00c1lvaro Herrera) Historically, applications have usually used compile-time checks of PG_VERSION_NUM to test whether a feature is available. But that's normally the server version, which might not be a good guide to libpq's version. libpq-fe.h now offers #define symbols denoting application-visible features added in v14; the intent is to keep adding symbols for such features in future versions.", "commit_aliases": ["6991e774e"], "source_commits": ["6991e774e"], "source_entry_id": "14.0/changes/173", "db_id": "a7c6579bc8ffc3fac0dbcad5119a9bb2", "patch_ids": ["3ad82629b851fb092a672a6dc622ab99"], "statement_hash": "29e4a6b76f75106a2eee2df3ee9710e9b44619f3ff54b6f6f699425280517ae4", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-0a1ddedee2c3b2ed", "migration": false}, {"id": "14.0-1717e539e78e51b3", "cves": [], "html": "<p>Allow subscripting of <a href=\"/docs/14/hstore.html\" title=\"F.16.\u00a0hstore\"><span>hstore</span></a> values (Tom Lane, Dmitry Dolgov) <a href=\"https://postgr.es/c/0ec5f7e78\">\u00a7</a></p>", "text": "Allow subscripting of hstore values (Tom Lane, Dmitry Dolgov) \u00a7", "title": "Allow subscripting of hstore values", "commits": ["0ec5f7e78"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.15", "source_hash": "d5f34d44fe4828098f9c2c2d6116656ca55a6605534d7f7f92e0a43fa2c4b1c8", "section_path": ["Additional Modules"], "commit_groups": [["0ec5f7e78"]], "identity_text": "Allow subscripting of hstore values (Tom Lane, Dmitry Dolgov)", "commit_aliases": ["0ec5f7e78"], "source_commits": ["0ec5f7e78"], "source_entry_id": "14.0/changes/174", "db_id": "35e1fa63982ea2eba3ad940467fd54d7", "patch_ids": ["6b0d0782f7d2c5729e7d36d465ea5368"], "statement_hash": "54fca5934ff39cc30997aeb21bea77492b0510dbafb26ecf4bc6ad1734fd2a64", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-1717e539e78e51b3", "migration": false}, {"id": "14.0-fea55df1911137e4", "cves": [], "html": "<p>Allow GiST/GIN <a href=\"/docs/14/pgtrgm.html\" title=\"F.33.\u00a0pg_trgm\"><span>pg_trgm</span></a> indexes to do equality lookups (Julien Rouhaud) <a href=\"https://postgr.es/c/935f66665\">\u00a7</a></p>\n<p>This is similar to <code>LIKE</code> except no wildcards are honored.</p>", "text": "Allow GiST/GIN pg_trgm indexes to do equality lookups (Julien Rouhaud) \u00a7 This is similar to LIKE except no wildcards are honored.", "title": "Allow GiST/GIN pg_trgm indexes to do equality lookups", "commits": ["935f66665"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.15", "source_hash": "c5fafbcc98fb4c422da39bfe8d85a99cc0927ff89f3435295f7c572a5f3d0cc8", "section_path": ["Additional Modules"], "commit_groups": [["935f66665"]], "identity_text": "Allow GiST/GIN pg_trgm indexes to do equality lookups (Julien Rouhaud) This is similar to LIKE except no wildcards are honored.", "commit_aliases": ["935f66665"], "source_commits": ["935f66665"], "source_entry_id": "14.0/changes/175", "db_id": "d5ff42c834bd3a04ae4c6cddfea08721", "patch_ids": ["8194d9588b930d7895e083bc43d40036"], "statement_hash": "a372ae2dbdfdd52bf86be8c73c33df920684800cf1972b4e1f67d4e0d6ccad99", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-fea55df1911137e4", "migration": false}, {"id": "14.0-35bcbfad9be29078", "cves": [], "html": "<p>Allow the <a href=\"/docs/14/cube.html\" title=\"F.9.\u00a0cube\"><span>cube</span></a> data type to be transferred in binary mode (KaiGai Kohei) <a href=\"https://postgr.es/c/1265a9c8f\">\u00a7</a></p>", "text": "Allow the cube data type to be transferred in binary mode (KaiGai Kohei) \u00a7", "title": "Allow the cube data type to be transferred in binary mode", "commits": ["1265a9c8f"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.15", "source_hash": "a3da381df8ac11e1b59e0327cad97362ad5ce20783b0188376e5505dd3d50d32", "section_path": ["Additional Modules"], "commit_groups": [["1265a9c8f"]], "identity_text": "Allow the cube data type to be transferred in binary mode (KaiGai Kohei)", "commit_aliases": ["1265a9c8f"], "source_commits": ["1265a9c8f"], "source_entry_id": "14.0/changes/176", "db_id": "8674ca09cafc36a81f695e9541261616", "patch_ids": ["918d21b602ad3faf48278e77f4ff480e"], "statement_hash": "44c762c5a960af6a649f0b72b65067073e8bf551f71732097c54ef28ff6993ca", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-35bcbfad9be29078", "migration": false}, {"id": "14.0-b7a63e2db86c38ae", "cves": [], "html": "<p>Allow <a href=\"/docs/14/pgstattuple.html\" title=\"F.31.\u00a0pgstattuple\"><code>pgstattuple_approx()</code></a> to report on <acronym>TOAST</acronym> tables (Peter Eisentraut) <a href=\"https://postgr.es/c/ee0202d55\">\u00a7</a></p>", "text": "Allow pgstattuple_approx() to report on TOAST tables (Peter Eisentraut) \u00a7", "title": "Allow pgstattuple_approx() to report on TOAST tables", "commits": ["ee0202d55"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.15", "source_hash": "edf02faa29694e9ae1c7428f3135b81e8a016f64997d0c51cb031f8f7e6a46ee", "section_path": ["Additional Modules"], "commit_groups": [["ee0202d55"]], "identity_text": "Allow pgstattuple_approx() to report on TOAST tables (Peter Eisentraut)", "commit_aliases": ["ee0202d55"], "source_commits": ["ee0202d55"], "source_entry_id": "14.0/changes/177", "db_id": "8db834688d3cb0a2a2ad23fffec27293", "patch_ids": ["b254a76fdbf3f826386c358e953015fd"], "statement_hash": "d0442d1f34d43a51ffccd6af345731ca0b10283d4281fbdcb791b60341b2b2d8", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-b7a63e2db86c38ae", "migration": false}, {"id": "14.0-58972b00e7674a01", "cves": [], "html": "<p>Add contrib module <a href=\"/docs/14/pgsurgery.html\" title=\"F.32.\u00a0pg_surgery\"><span>pg_surgery</span></a> which allows changes to row visibility (Ashutosh Sharma) <a href=\"https://postgr.es/c/34a947ca1\">\u00a7</a></p>\n<p>This is useful for correcting database corruption.</p>", "text": "Add contrib module pg_surgery which allows changes to row visibility (Ashutosh Sharma) \u00a7 This is useful for correcting database corruption.", "title": "Add contrib module pg_surgery which allows changes to row visibility", "commits": ["34a947ca1"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.15", "source_hash": "f74abe6ca5d324303822da9a79af4b14d6da334de396abf00a6835a44c3ccf5a", "section_path": ["Additional Modules"], "commit_groups": [["34a947ca1"]], "identity_text": "Add contrib module pg_surgery which allows changes to row visibility (Ashutosh Sharma) This is useful for correcting database corruption.", "commit_aliases": ["34a947ca1"], "source_commits": ["34a947ca1"], "source_entry_id": "14.0/changes/178", "db_id": "5237a2bf6a7faec60b8dae0e1dc8aa63", "patch_ids": ["c8a4d00bf715837a1e5bc22ba899f1e6"], "statement_hash": "288b5fef4fd60d673d9312f68adaedc126255305da4835125d106058dd163afc", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-58972b00e7674a01", "migration": false}, {"id": "14.0-fc3e46227b755345", "cves": [], "html": "<p>Add contrib module <a href=\"/docs/14/oldsnapshot.html\" title=\"F.22.\u00a0old_snapshot\"><span>old_snapshot</span></a> to report the <code>XID</code>/time mapping used by an active <a href=\"/docs/14/runtime-config-resource.html#GUC-OLD-SNAPSHOT-THRESHOLD\">old_snapshot_threshold</a> (Robert Haas) <a href=\"https://postgr.es/c/aecf5ee2b\">\u00a7</a></p>", "text": "Add contrib module old_snapshot to report the XID/time mapping used by an active old_snapshot_threshold (Robert Haas) \u00a7", "title": "Add contrib module old_snapshot to report the XID/time mapping used by an active old_snapshot_threshold", "commits": ["aecf5ee2b"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.15", "source_hash": "af106c5449af10cdf253e3074780cbaacafd0d29d6167f7ae9f7ef2e69932045", "section_path": ["Additional Modules"], "commit_groups": [["aecf5ee2b"]], "identity_text": "Add contrib module old_snapshot to report the XID/time mapping used by an active guc-old-snapshot-threshold (Robert Haas)", "commit_aliases": ["aecf5ee2b"], "source_commits": ["aecf5ee2b"], "source_entry_id": "14.0/changes/179", "db_id": "1d6556e5e0328ccc0ad0cd969e937fb4", "patch_ids": ["530f8dae87f8f3503900856f50dd3349"], "statement_hash": "b448b432cc5e5cc068757151a5396703ff859b7fd90f892496b48d11d0b30837", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-fc3e46227b755345", "migration": false}, {"id": "14.0-649cebccb83c6e2a", "cves": [], "html": "<p>Allow <a href=\"/docs/14/amcheck.html\" title=\"F.2.\u00a0amcheck\"><span>amcheck</span></a> to also check heap pages (Mark Dilger) <a href=\"https://postgr.es/c/866e24d47\">\u00a7</a></p>\n<p>Previously it only checked B-Tree index pages.</p>", "text": "Allow amcheck to also check heap pages (Mark Dilger) \u00a7 Previously it only checked B-Tree index pages.", "title": "Allow amcheck to also check heap pages", "commits": ["866e24d47"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.15", "source_hash": "dd1c019f206ec155abb7f71082b1e3ce34e744afa655c4f461047d6dcd946eaf", "section_path": ["Additional Modules"], "commit_groups": [["866e24d47"]], "identity_text": "Allow amcheck to also check heap pages (Mark Dilger) Previously it only checked B-Tree index pages.", "commit_aliases": ["866e24d47"], "source_commits": ["866e24d47"], "source_entry_id": "14.0/changes/180", "db_id": "458faa6c5575b1f36c7b15a75224fddf", "patch_ids": ["32f0eb8b8dd820a3288f765b570b316c"], "statement_hash": "2a21c06c933be743191c3e978fc93f4e226345f17d75482f0a6c94448fd5b60a", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-649cebccb83c6e2a", "migration": false}, {"id": "14.0-d5c1bfa13a84bd24", "cves": [], "html": "<p>Allow <a href=\"/docs/14/pageinspect.html\" title=\"F.23.\u00a0pageinspect\"><span>pageinspect</span></a> to inspect GiST indexes (Andrey Borodin, Heikki Linnakangas) <a href=\"https://postgr.es/c/756ab2912\">\u00a7</a> <a href=\"https://postgr.es/c/9e596b65f\">\u00a7</a></p>", "text": "Allow pageinspect to inspect GiST indexes (Andrey Borodin, Heikki Linnakangas) \u00a7 \u00a7", "title": "Allow pageinspect to inspect GiST indexes", "commits": ["756ab2912", "9e596b65f"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.15", "source_hash": "c6beab5ee31b4089b94e2a8dc54df3ddbfd0ca3f6633d39ec27b88f5652675e7", "section_path": ["Additional Modules"], "commit_groups": [["756ab2912"], ["9e596b65f"]], "identity_text": "Allow pageinspect to inspect GiST indexes (Andrey Borodin, Heikki Linnakangas)", "commit_aliases": ["756ab2912", "9e596b65f"], "source_commits": ["756ab2912", "9e596b65f"], "source_entry_id": "14.0/changes/181", "db_id": "4ae5de7378c79206299d14a648126a57", "patch_ids": ["0f79e60a97a233f2744a0604a32af6f2", "49a4b254fa9b472cbca1656ef65d896a"], "statement_hash": "b77436f57beaa53721aed36cdcd35696eb90e5f200ade5a474884db381d32278", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-d5c1bfa13a84bd24", "migration": false}, {"id": "14.0-7446d10b7fc9f118", "cves": [], "html": "<p>Change <span>pageinspect</span> block numbers to be <a href=\"/docs/14/datatype-numeric.html#DATATYPE-INT\" title=\"8.1.1.\u00a0Integer Types\"><code>bigints</code></a> (Peter Eisentraut) <a href=\"https://postgr.es/c/f18aa1b20\">\u00a7</a></p>", "text": "Change pageinspect block numbers to be bigints (Peter Eisentraut) \u00a7", "title": "Change pageinspect block numbers to be bigints", "commits": ["f18aa1b20"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.15", "source_hash": "015ae61bfcff3f5dee4d680cbecc42980c7feb6e707c8d30a2291b052bbcee1c", "section_path": ["Additional Modules"], "commit_groups": [["f18aa1b20"]], "identity_text": "Change pageinspect block numbers to be bigints (Peter Eisentraut)", "commit_aliases": ["f18aa1b20"], "source_commits": ["f18aa1b20"], "source_entry_id": "14.0/changes/182", "db_id": "b06347c9baac3a9d6c10a67e08c6196a", "patch_ids": ["dd73f45df9299ae50e8958cbee3610b6"], "statement_hash": "bc36d117b57d8adb2b3780c94ffe43d2e900bced01a33144f09e50d5ca4e3058", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-7446d10b7fc9f118", "migration": false}, {"id": "14.0-c6f091d077adac11", "cves": [], "html": "<p>Mark <a href=\"/docs/14/btree-gist.html\" title=\"F.7.\u00a0btree_gist\"><span>btree_gist</span></a> functions as parallel safe (Steven Winfield) <a href=\"https://postgr.es/c/d98c08cdc\">\u00a7</a></p>", "text": "Mark btree_gist functions as parallel safe (Steven Winfield) \u00a7", "title": "Mark btree_gist functions as parallel safe", "commits": ["d98c08cdc"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.15", "source_hash": "69a716ad1ae7cb5b9031db0ba07ed3bcb091047eedb20f02a0f3a3169bd9df8e", "section_path": ["Additional Modules"], "commit_groups": [["d98c08cdc"]], "identity_text": "Mark btree_gist functions as parallel safe (Steven Winfield)", "commit_aliases": ["d98c08cdc"], "source_commits": ["d98c08cdc"], "source_entry_id": "14.0/changes/183", "db_id": "d60bc82a124523ed8b20d5b2a30447ab", "patch_ids": ["7d3f9918d49be14ed4346805ff89f663"], "statement_hash": "0056e3a0404da553180798ce09277173f1fa9d21bb6fa59e6c7f7b17e27ccbfd", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-c6f091d077adac11", "migration": false}, {"id": "14.0-e4c7378480abd20c", "cves": [], "html": "<p>Move query hash computation from <span>pg_stat_statements</span> to the core server (Julien Rouhaud) <a href=\"https://postgr.es/c/5fd9dfa5f\">\u00a7</a></p>\n<p>The new server parameter <a href=\"/docs/14/runtime-config-statistics.html#GUC-COMPUTE-QUERY-ID\">compute_query_id</a>'s default of <code>auto</code> will automatically enable query id computation when this extension is loaded.</p>", "text": "Move query hash computation from pg_stat_statements to the core server (Julien Rouhaud) \u00a7 The new server parameter compute_query_id's default of auto will automatically enable query id computation when this extension is loaded.", "title": "Move query hash computation from pg_stat_statements to the core server", "commits": ["5fd9dfa5f"], "section": "Additional Modules / pg_stat_statements", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.15.3", "source_hash": "8e2d8618cf40f1989da8444f110014223b6cd88b49eaa3a60d9bc6e98641f838", "section_path": ["Additional Modules", "pg_stat_statements"], "commit_groups": [["5fd9dfa5f"]], "identity_text": "Move query hash computation from pg_stat_statements to the core server (Julien Rouhaud) The new server parameter guc-compute-query-id 's default of auto will automatically enable query id computation when this extension is loaded.", "commit_aliases": ["5fd9dfa5f"], "source_commits": ["5fd9dfa5f"], "source_entry_id": "14.0/changes/184", "db_id": "cd67eb400519623ed7a9c0e05df86087", "patch_ids": ["0e14241033f6730c4c4b815cf7f75544"], "statement_hash": "cbd2f06d42609ab0ebbdfc3d76d212dea5bee5d427c99d94522dfeabf3731a9a", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-e4c7378480abd20c", "migration": false}, {"id": "14.0-d611894d6b8de0dd", "cves": [], "html": "<p>Cause <span>pg_stat_statements</span> to track top and nested statements separately (Julien Rohaud) <a href=\"https://postgr.es/c/6b4d23fee\">\u00a7</a></p>\n<p>Previously, when tracking all statements, identical top and nested statements were tracked as a single entry; but it seems more useful to separate such usages.</p>", "text": "Cause pg_stat_statements to track top and nested statements separately (Julien Rohaud) \u00a7 Previously, when tracking all statements, identical top and nested statements were tracked as a single entry; but it seems more useful to separate such usages.", "title": "Cause pg_stat_statements to track top and nested statements separately", "commits": ["6b4d23fee"], "section": "Additional Modules / pg_stat_statements", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.15.3", "source_hash": "df2a65b95eeceab437e490d39ca11c69eb0930ae19da8478949d5d45f46e798c", "section_path": ["Additional Modules", "pg_stat_statements"], "commit_groups": [["6b4d23fee"]], "identity_text": "Cause pg_stat_statements to track top and nested statements separately (Julien Rohaud) Previously, when tracking all statements, identical top and nested statements were tracked as a single entry; but it seems more useful to separate such usages.", "commit_aliases": ["6b4d23fee"], "source_commits": ["6b4d23fee"], "source_entry_id": "14.0/changes/185", "db_id": "11134931e64a6d9c5b4c4e2e48062016", "patch_ids": ["275773d620858f3b89fc0adb1c4bad9a"], "statement_hash": "9b7c8f204beb578ce91753404d15ae112876bb630961b7306763a182ae06d33a", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-d611894d6b8de0dd", "migration": false}, {"id": "14.0-bbbf43328e82fee2", "cves": [], "html": "<p>Add row counts for utility commands to <span>pg_stat_statements</span> (Fujii Masao, Katsuragi Yuta, Seino Yuki) <a href=\"https://postgr.es/c/6023b7ea7\">\u00a7</a> <a href=\"https://postgr.es/c/b62e6056a\">\u00a7</a></p>", "text": "Add row counts for utility commands to pg_stat_statements (Fujii Masao, Katsuragi Yuta, Seino Yuki) \u00a7 \u00a7", "title": "Add row counts for utility commands to pg_stat_statements", "commits": ["6023b7ea7", "b62e6056a"], "section": "Additional Modules / pg_stat_statements", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.15.3", "source_hash": "4f67752ab84eaff4dc89a025ff6a9d728f18a2a7978ad6bd302fc2958c20744a", "section_path": ["Additional Modules", "pg_stat_statements"], "commit_groups": [["6023b7ea7"], ["b62e6056a"]], "identity_text": "Add row counts for utility commands to pg_stat_statements (Fujii Masao, Katsuragi Yuta, Seino Yuki)", "commit_aliases": ["6023b7ea7", "b62e6056a"], "source_commits": ["6023b7ea7", "b62e6056a"], "source_entry_id": "14.0/changes/186", "db_id": "983eab785ff24b21fae514737155ecbf", "patch_ids": ["a0aebb376ffa6dd4e7eef34d48fe4192", "de211c0bcc2147272f183ca9e73343df"], "statement_hash": "852df99d2b1ebde368ac96a479f2a95d4923cf7f3286757bcac698ba48a82704", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-bbbf43328e82fee2", "migration": false}, {"id": "14.0-8f77f820ad4395b6", "cves": [], "html": "<p>Add <code>pg_stat_statements_info</code> system view to show <span>pg_stat_statements</span> activity (Katsuragi Yuta, Yuki Seino, Naoki Nakamichi) <a href=\"https://postgr.es/c/9fbc3f318\">\u00a7</a> <a href=\"https://postgr.es/c/2e0fedf03\">\u00a7</a></p>", "text": "Add pg_stat_statements_info system view to show pg_stat_statements activity (Katsuragi Yuta, Yuki Seino, Naoki Nakamichi) \u00a7 \u00a7", "title": "Add pg_stat_statements_info system view to show pg_stat_statements activity", "commits": ["2e0fedf03", "9fbc3f318"], "section": "Additional Modules / pg_stat_statements", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.15.3", "source_hash": "2884a3ec714f75d2e89e213590c7d4c8444ffa16028e47885d3290ea8aacebdf", "section_path": ["Additional Modules", "pg_stat_statements"], "commit_groups": [["2e0fedf03"], ["9fbc3f318"]], "identity_text": "Add pg_stat_statements_info system view to show pg_stat_statements activity (Katsuragi Yuta, Yuki Seino, Naoki Nakamichi)", "commit_aliases": ["2e0fedf03", "9fbc3f318"], "source_commits": ["2e0fedf03", "9fbc3f318"], "source_entry_id": "14.0/changes/187", "db_id": "2853bf742bb8b1e4dc0a143338319cb0", "patch_ids": ["0ff3687b0528bfbe0ee3cc01f3768f48", "e374d39ca8d38ea3885053a65d85d0ec"], "statement_hash": "a2215c7b9c417c67723f2379757be61c8de70e8c3f76c3c46abefc87d5095231", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-8f77f820ad4395b6", "migration": false}, {"id": "14.0-7aaa55a0b0110f8b", "cves": [], "html": "<p>Allow <span>postgres_fdw</span> to <code>INSERT</code> rows in bulk (Takayuki Tsunakawa, Tomas Vondra, Amit Langote) <a href=\"https://postgr.es/c/b663a4136\">\u00a7</a> <a href=\"https://postgr.es/c/927f453a9\">\u00a7</a></p>", "text": "Allow postgres_fdw to INSERT rows in bulk (Takayuki Tsunakawa, Tomas Vondra, Amit Langote) \u00a7 \u00a7", "title": "Allow postgres_fdw to INSERT rows in bulk", "commits": ["927f453a9", "b663a4136"], "section": "Additional Modules / postgres_fdw", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.15.4", "source_hash": "91ac8cb31bf3f7ad8d0e7677ba248004cc5273748e101753d36bc1e684d0df56", "section_path": ["Additional Modules", "postgres_fdw"], "commit_groups": [["927f453a9"], ["b663a4136"]], "identity_text": "Allow postgres_fdw to INSERT rows in bulk (Takayuki Tsunakawa, Tomas Vondra, Amit Langote)", "commit_aliases": ["927f453a9", "b663a4136"], "source_commits": ["927f453a9", "b663a4136"], "source_entry_id": "14.0/changes/188", "db_id": "8edca89074d977c65a11cd2d9241ffab", "patch_ids": ["3f86d363692153d84de4460e7af1c9f3", "7d46efb735f60f650d471b45d5db5509"], "statement_hash": "163cb023ed651fb77a64df7b93d0d0947e97fdc8eb4145c7be4c770995d5b042", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-7aaa55a0b0110f8b", "migration": false}, {"id": "14.0-4d4c66555083a631", "cves": [], "html": "<p>Allow <span>postgres_fdw</span> to import table partitions if specified by <a href=\"/docs/14/sql-importforeignschema.html\" title=\"IMPORT FOREIGN SCHEMA\"><code>IMPORT FOREIGN SCHEMA ... LIMIT TO</code></a> (Matthias van de Meent) <a href=\"https://postgr.es/c/a3740c48e\">\u00a7</a></p>\n<p>By default, only the root of a partitioned table is imported.</p>", "text": "Allow postgres_fdw to import table partitions if specified by IMPORT FOREIGN SCHEMA ... LIMIT TO (Matthias van de Meent) \u00a7 By default, only the root of a partitioned table is imported.", "title": "Allow postgres_fdw to import table partitions if specified by IMPORT FOREIGN SCHEMA ... LIMIT TO", "commits": ["a3740c48e"], "section": "Additional Modules / postgres_fdw", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.15.4", "source_hash": "2a40dae8be975e501c241a152275c8e922507df112138beb727187b5a9121f32", "section_path": ["Additional Modules", "postgres_fdw"], "commit_groups": [["a3740c48e"]], "identity_text": "Allow postgres_fdw to import table partitions if specified by IMPORT FOREIGN SCHEMA ... LIMIT TO (Matthias van de Meent) By default, only the root of a partitioned table is imported.", "commit_aliases": ["a3740c48e"], "source_commits": ["a3740c48e"], "source_entry_id": "14.0/changes/189", "db_id": "3e7b57978d99713422c46b142cf3a8c1", "patch_ids": ["5fe554ea784f0c6553ce2ed91ebff6d4"], "statement_hash": "b2459a7eb320d47e1ba795fc8236cffc80d63caf4ebde8cbaf40e9ba58d0dafa", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-4d4c66555083a631", "migration": false}, {"id": "14.0-cc540636d8319d0f", "cves": [], "html": "<p>Add <span>postgres_fdw</span> function <code>postgres_fdw_get_connections()</code> to report open foreign server connections (Bharath Rupireddy) <a href=\"https://postgr.es/c/708d165dd\">\u00a7</a></p>", "text": "Add postgres_fdw function postgres_fdw_get_connections() to report open foreign server connections (Bharath Rupireddy) \u00a7", "title": "Add postgres_fdw function postgres_fdw_get_connections() to report open foreign server connections", "commits": ["708d165dd"], "section": "Additional Modules / postgres_fdw", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.15.4", "source_hash": "17958661d2d1cb78afb39dac63c85028db5d5fe49288f40d518a4d55a21d7245", "section_path": ["Additional Modules", "postgres_fdw"], "commit_groups": [["708d165dd"]], "identity_text": "Add postgres_fdw function postgres_fdw_get_connections() to report open foreign server connections (Bharath Rupireddy)", "commit_aliases": ["708d165dd"], "source_commits": ["708d165dd"], "source_entry_id": "14.0/changes/190", "db_id": "4a378185e60544c692c97365907017fa", "patch_ids": ["e72fee3989fe3212ca48686e540fd8ca"], "statement_hash": "40d55fc715b879f8d9983544c4b6a98abea448017a40c020fc76cf0bfd62daaa", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-cc540636d8319d0f", "migration": false}, {"id": "14.0-ac3f41e30cc32e16", "cves": [], "html": "<p>Allow control over whether foreign servers keep connections open after transaction completion (Bharath Rupireddy) <a href=\"https://postgr.es/c/b1be3074a\">\u00a7</a></p>\n<p>This is controlled by <code>keep_connections</code> and defaults to on.</p>", "text": "Allow control over whether foreign servers keep connections open after transaction completion (Bharath Rupireddy) \u00a7 This is controlled by keep_connections and defaults to on.", "title": "Allow control over whether foreign servers keep connections open after transaction completion", "commits": ["b1be3074a"], "section": "Additional Modules / postgres_fdw", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.15.4", "source_hash": "ec13cca913ea017b236cad47bfee5e3c5dfbe8b86a97c919805306023a0be57f", "section_path": ["Additional Modules", "postgres_fdw"], "commit_groups": [["b1be3074a"]], "identity_text": "Allow control over whether foreign servers keep connections open after transaction completion (Bharath Rupireddy) This is controlled by keep_connections and defaults to on.", "commit_aliases": ["b1be3074a"], "source_commits": ["b1be3074a"], "source_entry_id": "14.0/changes/191", "db_id": "854cf96d9cd70db7b9b23e0172db3b93", "patch_ids": ["d68e68ad94224bc4c8b6e247d3f01d92"], "statement_hash": "53376001a8f82497dcd7c1080e809d565cacd18aaa043406b16a5b0b7dd07f73", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-ac3f41e30cc32e16", "migration": false}, {"id": "14.0-e491c4cdf7dbea33", "cves": [], "html": "<p>Allow <span>postgres_fdw</span> to reestablish foreign server connections if necessary (Bharath Rupireddy) <a href=\"https://postgr.es/c/32a9c0bdf\">\u00a7</a> <a href=\"https://postgr.es/c/7fc1a81e4\">\u00a7</a></p>\n<p>Previously foreign server restarts could cause foreign table access errors.</p>", "text": "Allow postgres_fdw to reestablish foreign server connections if necessary (Bharath Rupireddy) \u00a7 \u00a7 Previously foreign server restarts could cause foreign table access errors.", "title": "Allow postgres_fdw to reestablish foreign server connections if necessary", "commits": ["32a9c0bdf", "7fc1a81e4"], "section": "Additional Modules / postgres_fdw", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.15.4", "source_hash": "3d50ac36c2e87e1b01d77a8311c474937d64acf45e7405d45b656e793b76004f", "section_path": ["Additional Modules", "postgres_fdw"], "commit_groups": [["32a9c0bdf"], ["7fc1a81e4"]], "identity_text": "Allow postgres_fdw to reestablish foreign server connections if necessary (Bharath Rupireddy) Previously foreign server restarts could cause foreign table access errors.", "commit_aliases": ["32a9c0bdf", "7fc1a81e4"], "source_commits": ["32a9c0bdf", "7fc1a81e4"], "source_entry_id": "14.0/changes/192", "db_id": "ddab4bb28b4fbaabd50d59c753af7feb", "patch_ids": ["1bb123d39a409d6adb97de97addd5c43", "ecb0adb3bad70f5af0e20437b240bc9d"], "statement_hash": "cd4359c0d8768a67d0bb7e990463de05b7dda61138013b8d6414230b5ef99483", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-e491c4cdf7dbea33", "migration": false}, {"id": "14.0-35419ac05a7b9a84", "cves": [], "html": "<p>Add <span>postgres_fdw</span> functions to discard cached connections (Bharath Rupireddy) <a href=\"https://postgr.es/c/411ae6499\">\u00a7</a></p>", "text": "Add postgres_fdw functions to discard cached connections (Bharath Rupireddy) \u00a7", "title": "Add postgres_fdw functions to discard cached connections", "commits": ["411ae6499"], "section": "Additional Modules / postgres_fdw", "category": "feature", "source_url": "/docs/release/14.0/#id-1.11.6.30.5.15.4", "source_hash": "d40b5b5ffacdcea79112ebe1115f0933f98b43f9099ac3bb548fc8a43a2bc8d8", "section_path": ["Additional Modules", "postgres_fdw"], "commit_groups": [["411ae6499"]], "identity_text": "Add postgres_fdw functions to discard cached connections (Bharath Rupireddy)", "commit_aliases": ["411ae6499"], "source_commits": ["411ae6499"], "source_entry_id": "14.0/changes/193", "db_id": "e5cfb8d774409fb5aeb59aa09c37fe50", "patch_ids": ["8a8b28146278cdae32260b003f7c7044"], "statement_hash": "32e02552bb3df0983f18f5baa281bff6b7e1ef4395acf1e5831a6efb857c620c", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=14.0#14.0-35419ac05a7b9a84", "migration": false}], "initial_entry_count": 220, "migration_html": "<p>A dump/restore using <a href=\"/docs/14/app-pg-dumpall.html\" title=\"pg_dumpall\"><span><span>pg_dumpall</span></span></a> or use of <a href=\"/docs/14/pgupgrade.html\" title=\"pg_upgrade\"><span><span>pg_upgrade</span></span></a> or logical replication is required for those wishing to migrate data from any previous release. See <a href=\"/docs/14/upgrading.html\" title=\"19.6.\u00a0Upgrading a PostgreSQL Cluster\">Section\u00a019.6</a> for general information on migrating to new major releases.</p>\n<p>Version 14 contains a number of changes that may affect compatibility with previous releases. Observe the following incompatibilities:</p>\n<div>\n</div>", "category_filters": [{"key": "feature", "label": "Features", "count": 178}, {"key": "bugfix", "label": "Bug fixes", "count": 2}, {"key": "security", "label": "Security", "count": 0}, {"key": "performance", "label": "Performance", "count": 13}, {"key": "compatibility", "label": "Compatibility", "count": 27}, {"key": "improvement", "label": "Improvements", "count": 0}], "security_rows": [{"id": "CVE-2026-6637", "title": "PostgreSQL refint allows stack buffer overflow and SQL injection", "url": "https://www.postgresql.org/support/security/CVE-2026-6637/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Stack buffer overflow in PostgreSQL module \"refint\" allows an unprivileged database user to execute arbitrary code as the operating system user running the database. A distinct attack is possible if the application declares a user-controlled column as a \"refint\" cascade primary key and facilitates user-controlled updates to that column. In that case, a SQL injection allows a primary key update value provider to execute arbitrary SQL as the database user performing the primary key update. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "fixed": "14.23", "fixed_url": "/docs/compare/?release=14.23", "affected": "14", "component": "contrib module", "mentions": [{"build": "14.24", "version": "14.24", "title": "Avoid NULL-pointer dereference in contrib/refint's check_foreign_key()", "url": "/docs/compare/?release=14.24#14.24-1db62b2c5a9b5839"}, {"build": "14.23", "version": "14.23", "title": "Prevent SQL injection and buffer overruns in contrib/spi", "url": "/docs/compare/?release=14.23#14.23-6193d19850500f38"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6479", "title": "PostgreSQL SSL/GSS init causes denial of service, via uncontrolled recursion", "url": "https://www.postgresql.org/support/security/CVE-2026-6479/", "score": 7.5, "vector": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "description": "Uncontrolled recursion in PostgreSQL SSL and GSS negotiation allows an attacker able to connect to a PostgreSQL AF_UNIX socket to achieve sustained denial of service. If SSL and GSS are both disabled, an attacker can do the same via access to a PostgreSQL TCP socket. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "fixed": "14.23", "fixed_url": "/docs/compare/?release=14.23", "affected": "14", "component": "core server", "mentions": [{"build": "14.23", "version": "14.23", "title": "Prevent unbounded recursion while processing startup packets", "url": "/docs/compare/?release=14.23#14.23-c632f730b154b207"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6478", "title": "PostgreSQL discloses MD5-hashed passwords via covert timing channel", "url": "https://www.postgresql.org/support/security/CVE-2026-6478/", "score": 6.5, "vector": "AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N", "description": "Covert timing channel in comparison of MD5-hashed password in PostgreSQL authentication allows an attacker to recover user credentials sufficient to authenticate. This does not affect scram-sha-256 passwords, the default in all supported releases. However, current databases may have MD5-hashed passwords originating in upgrades from PostgreSQL 13 or earlier. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "fixed": "14.23", "fixed_url": "/docs/compare/?release=14.23", "affected": "14", "component": "core server", "mentions": [{"build": "14.23", "version": "14.23", "title": "Use timing-safe string comparisons in authentication code", "url": "/docs/compare/?release=14.23#14.23-cc5cacc93416a361"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6477", "title": "PostgreSQL libpq lo_* functions let server superuser overwrite client stack memory", "url": "https://www.postgresql.org/support/security/CVE-2026-6477/", "score": 8.8, "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "description": "Use of inherently dangerous function PQfn(..., result_is_int=0, ...) in PostgreSQL libpq lo_export(), lo_read(), lo_lseek64(), and lo_tell64() functions allows the server superuser to overwrite a client stack buffer with an arbitrarily-large response. Like gets(), PQfn(..., result_is_int=0, ...) stores arbitrary-length, server-determined data into a buffer of unspecified size. Because both the \\lo_export command in psql and pg_dump call lo_read(), the server superuser can overwrite pg_dump or psql stack memory. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "fixed": "14.23", "fixed_url": "/docs/compare/?release=14.23", "affected": "14", "component": "client", "mentions": [{"build": "14.23", "version": "14.23", "title": "Mark PQfn() as unsafe, and avoid using it within libpq", "url": "/docs/compare/?release=14.23#14.23-0894c376482213b5"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6475", "title": "PostgreSQL pg_basebackup and pg_rewind can overwrite unrelated files of origin superuser choice", "url": "https://www.postgresql.org/support/security/CVE-2026-6475/", "score": 8.8, "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "description": "Symlink following in PostgreSQL pg_basebackup plain format and in pg_rewind allows an origin superuser to overwrite local files, e.g. /var/lib/postgres/.bashrc, that hijack the operating system account. It will remain the case that starting the server after these commands implicitly trusts the origin superuser, due to features like shared_preload_libraries. Hence, the attack has practical implications only if one takes relevant action between these commands and server start, like moving the files to a different VM or snapshotting the VM. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "fixed": "14.23", "fixed_url": "/docs/compare/?release=14.23", "affected": "14", "component": "client", "mentions": [{"build": "14.23", "version": "14.23", "title": "Prevent path traversal in pg_basebackup and pg_rewind", "url": "/docs/compare/?release=14.23#14.23-1e7e9c27c7b963a2"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6474", "title": "PostgreSQL timeofday() can disclose portions of server memory", "url": "https://www.postgresql.org/support/security/CVE-2026-6474/", "score": 4.3, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "description": "Externally-controlled format string in PostgreSQL timeofday() function allows an attacker to retrieve portions of server memory, via crafted timezone zones. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "fixed": "14.23", "fixed_url": "/docs/compare/?release=14.23", "affected": "14", "component": "core server", "mentions": [{"build": "14.23", "version": "14.23", "title": "Guard against malicious time zone names in timeofday() and pg_strftime()", "url": "/docs/compare/?release=14.23#14.23-4b161a739a37e73b"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6473", "title": "PostgreSQL server undersizes allocations, via integer wraparound", "url": "https://www.postgresql.org/support/security/CVE-2026-6473/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Integer wraparound in multiple PostgreSQL server features allows an unprivileged database user to cause the server to undersize an allocation and write out-of-bounds. This may execute arbitrary code as the operating system user running the database. In applications that pass gigabyte-scale user inputs to the relevant database functions, the application input provider may achieve a segmentation fault. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "fixed": "14.23", "fixed_url": "/docs/compare/?release=14.23", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "Fix integer overflows in memory-allocation calculations in PL/Perl and PL/Tcl", "url": "/docs/compare/?release=14.24#14.24-cbf179d0fe218ed0"}, {"build": "14.23", "version": "14.23", "title": "Fix assorted integer overflows in memory-allocation calculations", "url": "/docs/compare/?release=14.23#14.23-1cae472cd8aafd7d"}, {"build": "14.23", "version": "14.23", "title": "Reject over-length options in ts_headline()", "url": "/docs/compare/?release=14.23#14.23-c4c6b68f62616df1"}, {"build": "14.23", "version": "14.23", "title": "Guard against field overflow within contrib/intarray's query_int type and contrib/ltree's ltxtquery type", "url": "/docs/compare/?release=14.23#14.23-73b4c72ec19c85bf"}, {"build": "14.23", "version": "14.23", "title": "Guard against overly long values of contrib/ltree's lquery type", "url": "/docs/compare/?release=14.23#14.23-466881ae2d66f716"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6472", "title": "PostgreSQL CREATE TYPE does not check multirange schema CREATE privilege", "url": "https://www.postgresql.org/support/security/CVE-2026-6472/", "score": 5.4, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N", "description": "Missing authorization in PostgreSQL CREATE TYPE allows an object creator to hijack other queries that use search_path to find user-defined types, including extension-defined types. That is to say, the victim will execute arbitrary SQL functions of the attacker's choice. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected.", "fixed": "14.23", "fixed_url": "/docs/compare/?release=14.23", "affected": "14", "component": "core server", "mentions": [{"build": "14.23", "version": "14.23", "title": "When creating a multirange type, ensure the user has CREATE privilege on the schema specified for the multirange type", "url": "/docs/compare/?release=14.23#14.23-9d3fa6790baf242e"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6471", "title": "PostgreSQL logical decoding can dlopen arbitrary file", "url": "https://www.postgresql.org/support/security/CVE-2026-6471/", "score": 7.2, "vector": "AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H", "description": "Missing authorization in PostgreSQL logical decoding allows a non-superuser holding REPLICATION privilege to dlopen any file visible to the operating system account running the server, via the choice of logical decoding plugin. This in turn runs arbitrary code as that account. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "Restrict logical decoding output plugins to the set specified by a new server parameter output_plugin_libraries", "url": "/docs/compare/?release=14.24#14.24-ee721afe6731e1ce"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6470", "title": "PostgreSQL fails to check type USAGE privilege", "url": "https://www.postgresql.org/support/security/CVE-2026-6470/", "score": 4.3, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L", "description": "Missing authorization in PostgreSQL DDL commands allows an object creator to achieve denial of service against ALTER and DROP of the type, via creating a dependency on the type. Many DDL operations did check the privilege, but assigning a range subtype and referencing the type from an SQL expression did not. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "Check for USAGE privilege on data types in places that formerly failed to check that", "url": "/docs/compare/?release=14.24#14.24-045d18982c440e91"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6469", "title": "PostgreSQL ALTER TABLE ALTER TYPE resets extended statistics ownership", "url": "https://www.postgresql.org/support/security/CVE-2026-6469/", "score": 3.8, "vector": "AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:L/A:L", "description": "Incorrect ownership assignment in PostgreSQL ALTER TABLE ALTER TYPE command reassigns ownership of dependent statistics objects to the current user. This wrongly allows the table owner to run DROP STATISTICS and ALTER STATISTICS via this improper ownership. It wrongly denies those commands to the prior statistics object owner. DROP TABLE remains able to remove statistics objects, so this exploit achieves nothing in many ownership arrangements. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "Preserve the ownership of extended statistics objects when they are rebuilt by ALTER TABLE", "url": "/docs/compare/?release=14.24#14.24-dd4b41945f77ff4b"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-6464", "title": "PostgreSQL psql COPY FROM STDIN early failure processes data lines as psql commands", "url": "https://www.postgresql.org/support/security/CVE-2026-6464/", "score": 8.1, "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "description": "Untrusted data inclusion in PostgreSQL psql COPY may allow a server administrator to elicit execution of data lines as psql commands, via error injection. If the \"COPY FROM STDIN\" or \"\\copy FROM STDIN\" command fails before the server indicates that it awaits input rows, psql processes the in-line data rows as psql commands. \"COPY FROM\" with a filename is unaffected. The server administrator has no inherent control over the data rows, so a complete attack requires the attacker to separately acquire control of both the server and the data rows. Alternatively, an attacker controlling data rows alone might complete an attack through a coincidental error that they don't control. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "client", "mentions": [{"build": "14.24", "version": "14.24", "title": "Fix psql to skip in-line data following a scripted COPY ... FROM STDIN command, even if the COPY fails before sending PGRES_COPY_IN", "url": "/docs/compare/?release=14.24#14.24-6d095df52bb23c05"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-2006", "title": "PostgreSQL missing validation of multibyte character length executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-2006/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Missing validation of multibyte character length in PostgreSQL text manipulation allows a database user to issue crafted queries that achieve a buffer overrun. That suffices to execute arbitrary code as the operating system user running the database. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected.", "fixed": "14.21", "fixed_url": "/docs/compare/?release=14.21", "affected": "14", "component": "core server", "mentions": [{"build": "14.22", "version": "14.22", "title": "Avoid incorrect complaint of invalid encoding when substring() is applied to \u201ctoasted\u201d data", "url": "/docs/compare/?release=14.22#14.22-0e619c964c972dcb"}, {"build": "14.21", "version": "14.21", "title": "Fix inadequate validation of multibyte character lengths", "url": "/docs/compare/?release=14.21#14.21-0170b76fb58a4a02"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-2005", "title": "PostgreSQL pgcrypto heap buffer overflow executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-2005/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Heap buffer overflow in PostgreSQL pgcrypto allows a ciphertext provider to execute arbitrary code as the operating system user running the database. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected.", "fixed": "14.21", "fixed_url": "/docs/compare/?release=14.21", "affected": "14", "component": "contrib module", "mentions": [{"build": "14.21", "version": "14.21", "title": "Fix buffer overrun in contrib/pgcrypto's PGP decryption functions", "url": "/docs/compare/?release=14.21#14.21-8072e6858a1ccb57"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-2004", "title": "PostgreSQL intarray missing validation of type of input to selectivity estimator executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-2004/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Missing validation of type of input in PostgreSQL intarray extension selectivity estimator function allows an object creator to execute arbitrary code as the operating system user running the database. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected.", "fixed": "14.21", "fixed_url": "/docs/compare/?release=14.21", "affected": "14", "component": "contrib module", "mentions": [{"build": "14.21", "version": "14.21", "title": "Harden selectivity estimators against being attached to operators that accept unexpected data types", "url": "/docs/compare/?release=14.21#14.21-4f1356e5a78a8982"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-2003", "title": "PostgreSQL oidvector discloses a few bytes of memory", "url": "https://www.postgresql.org/support/security/CVE-2026-2003/", "score": 4.3, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "description": "Improper validation of type \"oidvector\" in PostgreSQL allows a database user to disclose a few bytes of server memory. We have not ruled out viability of attacks that arrange for presence of confidential information in disclosed bytes, but they seem unlikely. Versions before PostgreSQL 18.2, 17.8, 16.12, 15.16, and 14.21 are affected.", "fixed": "14.21", "fixed_url": "/docs/compare/?release=14.21", "affected": "14", "component": "core server", "mentions": [{"build": "14.21", "version": "14.21", "title": "Guard against unexpected dimensions of oidvector/int2vector", "url": "/docs/compare/?release=14.21#14.21-182abf620be79725"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-19385", "title": "PostgreSQL pg_dump heap buffer overflow executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-19385/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Heap buffer overflow in PostgreSQL pg_dump of long function transform lists allows an object creator to execute arbitrary code as the operating system user running pg_dump, via a crafted transform list. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "client", "mentions": [{"build": "14.24", "version": "14.24", "title": "Remove pg_dump's assumption that pg_proc.protrftypes cannot have more than FUNC_MAX_ARGS entries", "url": "/docs/compare/?release=14.24#14.24-f37e6003b995c6db"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-18408", "title": "PostgreSQL psql \\unrestrict lets superuser of pg_dump origin server execute arbitrary code in psql client", "url": "https://www.postgresql.org/support/security/CVE-2026-18408/", "score": 8.8, "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "description": "Untrusted data inclusion in pg_dump in PostgreSQL allows a malicious superuser of the origin server to inject arbitrary code for restore-time execution as the client operating system account running psql to restore the dump, via psql \\restrict meta-command input expansion. The fix for CVE-2025-8714 introduced \\restrict and \\unrestrict to block this attack, but \\unrestrict itself was sufficient for an attack. pg_dumpall is also affected. pg_restore is affected when used to generate a plain-format dump. Non-core use of \\restrict would be affected, but we've not identified non-core use. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "client", "mentions": [{"build": "14.24", "version": "14.24", "title": "Do not do backquote expansion on the argument of psql's \\unrestrict command", "url": "/docs/compare/?release=14.24#14.24-383244a3d19a3ddf"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-18024", "title": "PostgreSQL ascii() function reads past end of buffer", "url": "https://www.postgresql.org/support/security/CVE-2026-18024/", "score": 4.3, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "description": "Buffer over-read in PostgreSQL ascii() SQL function allows a user to disclose up to 3 bytes after the end of a specific allocation, via a crafted text value. This is the same class of defect that CVE-2026-2006 fixed, though this instance has less impact. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "Harden the ascii() function against invalid input", "url": "/docs/compare/?release=14.24#14.24-7c4016acc1446315"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-16241", "title": "PostgreSQL ECPG integer underflow can crash the client", "url": "https://www.postgresql.org/support/security/CVE-2026-16241/", "score": 3.8, "vector": "AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:L/A:L", "description": "Integer underflow in PostgreSQL ECPG allows a database server administrator to achieve temporary denial of service against the ECPG client via sending a bytea value lacking the mandatory prefix. The client overwrites a huge memory region with bytes outside attacker knowledge or control. This typically yields a simple SIGSEGV, but rare cases might achieve client-specific integrity impact via the write. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "client", "mentions": [{"build": "14.24", "version": "14.24", "title": "Fix out-of-bounds writes in ecpg applications caused by invalid bytea data received from the server", "url": "/docs/compare/?release=14.24#14.24-a12e893b89f31441"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-16239", "title": "PostgreSQL type confusion in cursor CLOSE + DECLARE executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-16239/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Type confusion in PostgreSQL \"portal\"/cursor lifecycle allows a user to execute arbitrary code as the operating system user running the database, via re-creation of a cursor or other portal with different types. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "Cross-check the output row type of a portal running EXECUTE or FETCH", "url": "/docs/compare/?release=14.24#14.24-741f9481441d702d"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-16238", "title": "PostgreSQL type confusion in pg_restore_attribute_stats() executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-16238/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Type confusion in PostgreSQL pg_restore_attribute_stats() allows an object creator to execute arbitrary code as the operating system user running the database, via conflation of range and multirange values. Within major version 18, minor versions before PostgreSQL 18.6 are affected. Versions before PostgreSQL 18 are unaffected.", "fixed": "", "fixed_url": "", "affected": "", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "Fix multirange type handling in pg_restore_attribute_stats()", "url": "/docs/compare/?release=14.24#14.24-ba8cb69723cdb335"}], "evidence": "release-note-mention"}, {"id": "CVE-2026-15742", "title": "PostgreSQL fuzzystrmatch writes effectively-arbitrary addresses, via integer wraparound", "url": "https://www.postgresql.org/support/security/CVE-2026-15742/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Integer wraparound in PostgreSQL fuzzystrmatch allows a user to direct writes to a huge range of addresses, executing arbitrary code as the operating system user running the database, via extreme inputs to SQL function levenshtein() or levenshtein_less_equal(). Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "contrib module", "mentions": [{"build": "14.24", "version": "14.24", "title": "Fix integer overflows in contrib/fuzzystrmatch's levenshtein() and levenshtein_less_equal() functions", "url": "/docs/compare/?release=14.24#14.24-249a71765a38f726"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-15741", "title": "PostgreSQL expression deparse allows SQL injection via EXTRACT argument", "url": "https://www.postgresql.org/support/security/CVE-2026-15741/", "score": 8.8, "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "description": "SQL injection in PostgreSQL EXTRACT() deparse allows an object owner to execute arbitrary SQL as a superuser via a hostile object definition. Attacks affect expression deparse consumers broadly, including pg_dump, psql commands like \\sf, and any similar usage in non-core tools. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "When deparsing an EXTRACT() function call, quote the field name if needed", "url": "/docs/compare/?release=14.24#14.24-6222e3f0de511b22"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14681", "title": "PostgreSQL improper enforcement of GSSAPI encryption when coupled with SSL", "url": "https://www.postgresql.org/support/security/CVE-2026-14681/", "score": 4.2, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "description": "Improper enforcement of message integrity in PostgreSQL GSSAPI support allows a user to negotiate GSSAPI contrary to pg_hba.conf rules, via initial direct TLS connection. Despite a pg_hba.conf that appears to require GSSAPI, the connection may exchange data over TLS encryption alone. If the TLS settings are more permissive than the GSS settings, the connection may continue with lesser protection. Within major versions 17-18, minor versions before PostgreSQL 18.6 and 17.11 are affected. Versions before PostgreSQL 17 are unaffected.", "fixed": "", "fixed_url": "", "affected": "", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "Reject GSSEncRequest after direct SSL connection", "url": "/docs/compare/?release=14.24#14.24-c6bce83a8c49af2c"}], "evidence": "release-note-mention"}, {"id": "CVE-2026-14680", "title": "PostgreSQL type confusion via \"internal\" arguments", "url": "https://www.postgresql.org/support/security/CVE-2026-14680/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Type confusion with PostgreSQL \"internal\" data type arguments allows any user to execute arbitrary code as the operating system user running the database, via calls to functions with that argument type. Type \"internal\" represents a class of mutually-incompatible data structures not intended for access from SQL. The system intended to prevent such function calls, but this prevention had gaps. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "Reject calls from SQL to functions that take or return type internal", "url": "/docs/compare/?release=14.24#14.24-d4901f423633ca69"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14679", "title": "PostgreSQL stack buffer overflow in argument match writes 0x0 and 0x1 to server memory", "url": "https://www.postgresql.org/support/security/CVE-2026-14679/", "score": 8.2, "vector": "AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H", "description": "Stack buffer overflow in PostgreSQL argument name matching allows an object creator to achieve unknown impacts via OUT parameter count. The attack can write only 0x0 and 0x1 bytes. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "Fix various places that mistakenly assumed they would not have to deal with more than FUNC_MAX_ARGS function arguments", "url": "/docs/compare/?release=14.24#14.24-573a25e391fc116a"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14678", "title": "PostgreSQL pg_trgm picksplit reads past end of buffer", "url": "https://www.postgresql.org/support/security/CVE-2026-14678/", "score": 4.3, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "description": "Buffer over-read in PostgreSQL pg_trgm index picksplit function reads past end of a heap buffer. This might allow a table maintainer to infer limited memory values, via the lossy signal of index split choices. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "contrib module", "mentions": [{"build": "14.24", "version": "14.24", "title": "Fix datatype error in contrib/pg_trgm's GiST picksplit function", "url": "/docs/compare/?release=14.24#14.24-76522194454c0c43"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14677", "title": "PostgreSQL 32-bit pltcl and plperl undersize allocations, via integer wraparound", "url": "https://www.postgresql.org/support/security/CVE-2026-14677/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Integer wraparound in PostgreSQL 32-bit builds of pltcl and plperl allows an object creator to cause the server to undersize an allocation and write out-of-bounds via crafted function bodies. This may execute arbitrary code as the operating system user running the database. CVE-2026-6473 had fixed similar problems. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "Fix integer overflows in memory-allocation calculations in PL/Perl and PL/Tcl", "url": "/docs/compare/?release=14.24#14.24-cbf179d0fe218ed0"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14676", "title": "PostgreSQL pg_stat_statements heap buffer overflow executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-14676/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Heap buffer overflow in PostgreSQL pg_stat_statements allows the query author to execute arbitrary code as the operating system user running the database, via crafted queries containing array constants. Within major version 18, minor versions before PostgreSQL 18.6 are affected. Versions before PostgreSQL 18 are unaffected.", "fixed": "", "fixed_url": "", "affected": "", "component": "contrib module", "mentions": [{"build": "14.24", "version": "14.24", "title": "Fix buffer overrun in contrib/pg_stat_statements", "url": "/docs/compare/?release=14.24#14.24-881f882c67a9948d"}], "evidence": "release-note-mention"}, {"id": "CVE-2026-14673", "title": "PostgreSQL amcheck does not clear untrusted search path", "url": "https://www.postgresql.org/support/security/CVE-2026-14673/", "score": 3.8, "vector": "AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:N", "description": "Untrusted search path in PostgreSQL amcheck allows a grantee of amcheck function EXECUTE privilege to execute arbitrary functions as the owners of expression indexes that depend on the search path, via setting a hostile search path before calling the amcheck function. Within major versions 18, 16, 15, and 14, minor versions before PostgreSQL 18.6, 16.15, 15.19, and 14.24 are affected. PostgreSQL 17 is unaffected.", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "contrib module", "mentions": [{"build": "14.24", "version": "14.24", "title": "Ensure that contrib/amcheck functions restrict search_path before executing index expressions", "url": "/docs/compare/?release=14.24#14.24-e234967475d09d13"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14672", "title": "PostgreSQL observable response discrepancy with non-default scram_iterations provides user existence oracle", "url": "https://www.postgresql.org/support/security/CVE-2026-14672/", "score": 5.3, "vector": "AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N", "description": "Observable response discrepancy in PostgreSQL SCRAM authentication allows an unauthenticated user to test the existence of a user via observing the SCRAM iteration count. This requires the probed user to have a non-default scram_iterations count, because the authentication challenge for a nonexistent user reports the default scram_iterations. Within major versions 16-18, minor versions before PostgreSQL 18.6, 17.11, and 16.15 are affected. Versions before PostgreSQL 16 are unaffected.", "fixed": "", "fixed_url": "", "affected": "", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "Make mock SCRAM authentication secrets more plausible", "url": "/docs/compare/?release=14.24#14.24-df0f61cd55651315"}], "evidence": "release-note-mention"}, {"id": "CVE-2026-14671", "title": "PostgreSQL refint plan cache type confusion executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-14671/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Type confusion in PostgreSQL module \"refint\" allows an object creator to execute arbitrary code as the operating system user running the database. The fix for this emerged as a non-security bug report, and the fix appear in the git repository with subject \"refint: Remove plan cache.\", without a CVE number. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "contrib module", "mentions": [{"build": "14.24", "version": "14.24", "title": "Remove the plan cache in contrib/refint", "url": "/docs/compare/?release=14.24#14.24-80251253da1ccc96"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14670", "title": "PostgreSQL plperl tied object heap buffer overflow executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-14670/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Heap buffer overflow in PostgreSQL plperl return of a tied hash allows the function owner to execute arbitrary code as the operating system user running the database, via a crafted function body. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "Harden PL/Perl against \u201ctied\u201d Perl arrays and hashes", "url": "/docs/compare/?release=14.24#14.24-00b84c1b83bd3d6b"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14669", "title": "PostgreSQL to_char heap buffer overflow executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-14669/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Heap buffer overflow in PostgreSQL to_char(timestamptz) allows the party choosing the timezone to execute arbitrary code as the operating system user running the database, via a long POSIX timezone abbreviation. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "Fix buffer overrun with long time zone abbreviation in to_char()", "url": "/docs/compare/?release=14.24#14.24-744489dc4872d6f1-1"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14668", "title": "PostgreSQL ctid type confusion in selectivity estimator discloses derivative of arbitrary read", "url": "https://www.postgresql.org/support/security/CVE-2026-14668/", "score": 8.1, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H", "description": "Type confusion regarding input of PostgreSQL ctid data type selectivity estimator allows an object creator to view a calculation derived from the value of an arbitrary 4-byte span of memory, via a chosen non-ctid input. While the calculation loses precision, substantial memory value recovery appears possible. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "Make scalarineqsel() check that a constant it expects to be of type tid actually is", "url": "/docs/compare/?release=14.24#14.24-5956eea8fb565470"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14666", "title": "PostgreSQL row security caching disregards role modifications", "url": "https://www.postgresql.org/support/security/CVE-2026-14666/", "score": 4.2, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "description": "Incomplete tracking in PostgreSQL of changes to role membership, role attributes, and database ownership allows a query to continue using cached row-level security policies after those changes require a different policy, via plan reuse. Stale policies continue until some other event invalidates the cache or connection termination ends the session. This permits a user to complete reads and modifications that were recently permitted but now forbidden. An attacker must tailor an attack to a particular application's pattern of privilege removal and role-specific row security policies. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "Invalidate role-dependent cached plans after role changes", "url": "/docs/compare/?release=14.24#14.24-6987bc0045f3c2c5"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14664", "title": "PostgreSQL regexp heap buffer overflow executes arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2026-14664/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Heap buffer overflow in PostgreSQL regexp allows the query author to execute arbitrary code as the operating system user running the database, via text that would not pass encoding validation. This shares heritage with CVE-2026-2006, but this case involved unanticipated data growth when round-tripped through pg_wchar. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "Fix buffer overrun in regexp match/split functions", "url": "/docs/compare/?release=14.24#14.24-e8fecccd48726ac8"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14663", "title": "PostgreSQL pgcrypto, for OpenSSL-disabled ciphers, silently encrypts to and decrypts from cleartext", "url": "https://www.postgresql.org/support/security/CVE-2026-14663/", "score": 6.5, "vector": "AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N", "description": "Cleartext storage in PostgreSQL pgcrypto disabled ciphers allows a user to recover cleartext, via direct observation of the faulty ciphertext. The OpenSSL version and OpenSSL configuration determine the disabled ciphers. If the application accepts encrypted data as input, decryption will succeed even with the wrong key. This in turn loses the modest protection from the Modification Detection Code (MDC). Affected functions are pgp_sym_encrypt, pgp_sym_decrypt, pgp_pub_encrypt, pgp_pub_decrypt, pgp_sym_encrypt_bytea, pgp_sym_decrypt_bytea, pgp_pub_encrypt_bytea, and pgp_pub_decrypt_bytea. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "contrib module", "mentions": [{"build": "14.24", "version": "14.24", "title": "Fix contrib/pgcrypto's PGP encryption to detect unsupported ciphers", "url": "/docs/compare/?release=14.24#14.24-fdda567fdb9d909d"}], "evidence": "branch-matrix"}, {"id": "CVE-2026-14662", "title": "PostgreSQL tsvector and tsquery undersize allocations, via integer wraparound", "url": "https://www.postgresql.org/support/security/CVE-2026-14662/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Integer wraparound in PostgreSQL tsvector and tsquery data type functions allows an unprivileged database user to cause the server to undersize an allocation and write out-of-bounds, via crafted large inputs. This may execute arbitrary code as the operating system user running the database. These types are typically sourced from application logic, not taken from the application's user. Hence, application users attacking the database, through the application as a conduit, are unlikely. CVE-2026-6473 had fixed similar problems. Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.", "fixed": "14.24", "fixed_url": "/docs/compare/?release=14.24", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "Harden tsvector and tsquery code against overly long values (both individual lexemes and total vector/query length)", "url": "/docs/compare/?release=14.24#14.24-60bda94b8310bec9"}], "evidence": "branch-matrix"}, {"id": "CVE-2025-8715", "title": "PostgreSQL pg_dump newline in object name executes arbitrary code in psql client and in restore target server", "url": "https://www.postgresql.org/support/security/CVE-2025-8715/", "score": 8.8, "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "description": "Improper neutralization of newlines in pg_dump in PostgreSQL allows a user of the origin server to inject arbitrary code for restore-time execution as the client operating system account running psql to restore the dump, via psql meta-commands inside a purpose-crafted object name. The same attacks can achieve SQL injection as a superuser of the restore target server. pg_dumpall, pg_restore, and pg_upgrade are also affected. Versions before PostgreSQL 17.6, 16.10, 15.14, 14.19, and 13.22 are affected. Versions before 11.20 are unaffected. CVE-2012-0868 had fixed this class of problem, but version 11.20 reintroduced it.", "fixed": "14.19", "fixed_url": "/docs/compare/?release=14.19", "affected": "14", "component": "core server", "mentions": [{"build": "14.19", "version": "14.19", "title": "Convert newlines to spaces in names included in comments in pg_dump output", "url": "/docs/compare/?release=14.19#14.19-fb4152603ed81a9f"}], "evidence": "branch-matrix"}, {"id": "CVE-2025-8714", "title": "PostgreSQL pg_dump lets superuser of origin server execute arbitrary code in psql client", "url": "https://www.postgresql.org/support/security/CVE-2025-8714/", "score": 8.8, "vector": "AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "description": "Untrusted data inclusion in pg_dump in PostgreSQL allows a malicious superuser of the origin server to inject arbitrary code for restore-time execution as the client operating system account running psql to restore the dump, via psql meta-commands. pg_dumpall is also affected. pg_restore is affected when used to generate a plain-format dump. This is similar to MySQL CVE-2024-21096. Versions before PostgreSQL 17.6, 16.10, 15.14, 14.19, and 13.22 are affected.", "fixed": "14.19", "fixed_url": "/docs/compare/?release=14.19", "affected": "14", "component": "core server", "mentions": [{"build": "14.24", "version": "14.24", "title": "Do not do backquote expansion on the argument of psql's \\unrestrict command", "url": "/docs/compare/?release=14.24#14.24-383244a3d19a3ddf"}, {"build": "14.19", "version": "14.19", "title": "Prevent pg_dump scripts from being used to attack the user running the restore", "url": "/docs/compare/?release=14.19#14.19-7d06a1d1ebfb29d7"}], "evidence": "branch-matrix"}, {"id": "CVE-2025-8713", "title": "PostgreSQL optimizer statistics can expose sampled data within a view, partition, or child table", "url": "https://www.postgresql.org/support/security/CVE-2025-8713/", "score": 3.1, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N", "description": "PostgreSQL optimizer statistics allow a user to read sampled data within a view that the user cannot access. Separately, statistics allow a user to read sampled data that a row security policy intended to hide. PostgreSQL maintains statistics for tables by sampling data available in columns; this data is consulted during the query planning process. Prior to this release, a user could craft a leaky operator that bypassed view access control lists (ACLs) and bypassed row security policies in partitioning or table inheritance hierarchies. Reachable statistics data notably included histograms and most-common-values lists. CVE-2017-7484 and CVE-2019-10130 intended to close this class of vulnerability, but this gap remained. Versions before PostgreSQL 17.6, 16.10, 15.14, 14.19, and 13.22 are affected.", "fixed": "14.19", "fixed_url": "/docs/compare/?release=14.19", "affected": "14", "component": "core server", "mentions": [{"build": "14.19", "version": "14.19", "title": "Tighten security checks in planner estimation functions", "url": "/docs/compare/?release=14.19#14.19-37596904cdde57bc"}], "evidence": "branch-matrix"}, {"id": "CVE-2025-4207", "title": "PostgreSQL GB18030 encoding validation can read one byte past end of allocation for text that fails validation", "url": "https://www.postgresql.org/support/security/CVE-2025-4207/", "score": 5.9, "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H", "description": "Buffer over-read in PostgreSQL GB18030 encoding validation allows a database input provider to achieve temporary denial of service on platforms where a 1-byte over-read can elicit process termination. This affects the database server and also libpq. Versions before PostgreSQL 17.5, 16.9, 15.13, 14.18, and 13.21 are affected.", "fixed": "14.18", "fixed_url": "/docs/compare/?release=14.18", "affected": "14", "component": "core server", "mentions": [{"build": "14.18", "version": "14.18", "title": "Avoid one-byte buffer overread when examining invalidly-encoded strings that are claimed to be in GB18030 encoding", "url": "/docs/compare/?release=14.18#14.18-e7c0d482f98a0ba1"}], "evidence": "branch-matrix"}, {"id": "CVE-2025-12818", "title": "PostgreSQL libpq undersizes allocations, via integer wraparound", "url": "https://www.postgresql.org/support/security/CVE-2025-12818/", "score": 5.9, "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H", "description": "Integer wraparound in multiple PostgreSQL libpq client library functions allows an application input provider or network peer to cause libpq to undersize an allocation and write out-of-bounds by hundreds of megabytes. This results in a segmentation fault for the application using libpq. Versions before PostgreSQL 18.1, 17.7, 16.11, 15.15, 14.20, and 13.23 are affected.", "fixed": "14.20", "fixed_url": "/docs/compare/?release=14.20", "affected": "14", "component": "core server", "mentions": [{"build": "14.20", "version": "14.20", "title": "Avoid integer overflow in allocation-size calculations within libpq", "url": "/docs/compare/?release=14.20#14.20-e2a95ddb7200c878"}], "evidence": "branch-matrix"}, {"id": "CVE-2025-12817", "title": "PostgreSQL CREATE STATISTICS does not check for schema CREATE privilege", "url": "https://www.postgresql.org/support/security/CVE-2025-12817/", "score": 3.1, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L", "description": "Missing authorization in PostgreSQL CREATE STATISTICS command allows a table owner to achieve denial of service against other CREATE STATISTICS users by creating in any schema. A later CREATE STATISTICS for the same name, from a user having the CREATE privilege, would then fail. Versions before PostgreSQL 18.1, 17.7, 16.11, 15.15, 14.20, and 13.23 are affected.", "fixed": "14.20", "fixed_url": "/docs/compare/?release=14.20", "affected": "14", "component": "core server", "mentions": [{"build": "14.20", "version": "14.20", "title": "Check for CREATE privileges on the schema in CREATE STATISTICS", "url": "/docs/compare/?release=14.20#14.20-1acfdd0cd4bbd28d"}], "evidence": "branch-matrix"}, {"id": "CVE-2025-1094", "title": "PostgreSQL quoting APIs miss neutralizing quoting syntax in text that fails encoding validation", "url": "https://www.postgresql.org/support/security/CVE-2025-1094/", "score": 8.1, "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "description": "Improper neutralization of quoting syntax in PostgreSQL libpq functions PQescapeLiteral(), PQescapeIdentifier(), PQescapeString(), and PQescapeStringConn() allows a database input provider to achieve SQL injection in certain usage patterns. Specifically, SQL injection requires the application to use the function result to construct input to psql, the PostgreSQL interactive terminal. Similarly, improper neutralization of quoting syntax in PostgreSQL command line utility programs allows a source of command line arguments to achieve SQL injection when client_encoding is BIG5 and server_encoding is one of EUC_TW or MULE_INTERNAL. Versions before PostgreSQL 17.3, 16.7, 15.11, 14.16, and 13.19 are affected.", "fixed": "14.16", "fixed_url": "/docs/compare/?release=14.16", "affected": "14", "component": "core server", "mentions": [{"build": "14.17", "version": "14.17", "title": "Improve behavior of libpq's quoting functions", "url": "/docs/compare/?release=14.17#14.17-5608e94c3b2dd6d1"}, {"build": "14.16", "version": "14.16", "title": "Harden PQescapeString and allied functions against invalidly-encoded input strings", "url": "/docs/compare/?release=14.16#14.16-84a4341a43ed7fd0"}], "evidence": "branch-matrix"}, {"id": "CVE-2024-7348", "title": "PostgreSQL relation replacement during pg_dump executes arbitrary SQL", "url": "https://www.postgresql.org/support/security/CVE-2024-7348/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Time-of-check Time-of-use (TOCTOU) race condition in pg_dump in PostgreSQL allows an object creator to execute arbitrary SQL functions as the user running pg_dump, which is often a superuser. The attack involves replacing another relation type with a view or foreign table. The attack requires waiting for pg_dump to start, but winning the race condition is trivial if the attacker retains an open transaction. Versions before PostgreSQL 16.4, 15.8, 14.13, 13.16, and 12.20 are affected.\n\nThe PostgreSQL project thanks Noah Misch for reporting this problem.", "fixed": "14.13", "fixed_url": "/docs/compare/?release=14.13", "affected": "14", "component": "core server", "mentions": [{"build": "14.13", "version": "14.13", "title": "Prevent unauthorized code execution during pg_dump", "url": "/docs/compare/?release=14.13#14.13-79afc7e6590473c8"}], "evidence": "branch-matrix"}, {"id": "CVE-2024-4317", "title": "Restrict visibility of \"pg_stats_ext\" and \"pg_stats_ext_exprs\" entries to the table owner", "url": "https://www.postgresql.org/support/security/CVE-2024-4317/", "score": 3.1, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N", "description": "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.", "fixed": "14.12", "fixed_url": "/docs/compare/?release=14.12", "affected": "14", "component": "core server", "mentions": [{"build": "14.12", "version": "14.12", "title": "Restrict visibility of pg_stats_ext and pg_stats_ext_exprs entries to the table owner", "url": "/docs/compare/?release=14.12#14.12-8bc43ac4b7f05ccd"}], "evidence": "branch-matrix"}, {"id": "CVE-2024-10979", "title": "PostgreSQL PL/Perl environment variable changes execute arbitrary code", "url": "https://www.postgresql.org/support/security/CVE-2024-10979/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Incorrect control of environment variables in PostgreSQL PL/Perl allows an unprivileged database user to change sensitive process environment variables (e.g. PATH ). That often suffices to enable arbitrary code execution, even if the attacker lacks a database server operating system user. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.\n\nThe PostgreSQL project thanks Coby Abrams for reporting this problem.", "fixed": "14.14", "fixed_url": "/docs/compare/?release=14.14", "affected": "14", "component": "core server", "mentions": [{"build": "14.14", "version": "14.14", "title": "Prevent trusted PL/Perl code from changing environment variables", "url": "/docs/compare/?release=14.14#14.14-cc2f3258f095a62a"}], "evidence": "branch-matrix"}, {"id": "CVE-2024-10978", "title": "PostgreSQL SET ROLE, SET SESSION AUTHORIZATION reset to wrong user ID", "url": "https://www.postgresql.org/support/security/CVE-2024-10978/", "score": 4.2, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "description": "Incorrect privilege assignment in PostgreSQL allows a less-privileged application user to view or change different rows from those intended. An attack requires the application to use SET ROLE , SET SESSION AUTHORIZATION , or an equivalent feature. The problem arises when an application query uses parameters from the attacker or conveys query results to the attacker. If that query reacts to current_setting('role') or the current user ID, it may modify or return data as though the session had not used SET ROLE or SET SESSION AUTHORIZATION . The attacker does not control which incorrect user ID applies. Query text from less-privileged sources is not a concern here, because SET ROLE and SET SESSION AUTHORIZATION are not sandboxes for unvetted queries. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.\n\nThe PostgreSQL project thanks Tom Lane for reporting this problem.", "fixed": "14.14", "fixed_url": "/docs/compare/?release=14.14", "affected": "14", "component": "core server", "mentions": [{"build": "14.15", "version": "14.15", "title": "Restore functionality of ALTER {ROLE|DATABASE} SET role", "url": "/docs/compare/?release=14.15#14.15-422cf39c7394aada"}, {"build": "14.14", "version": "14.14", "title": "Fix unintended interactions between SET SESSION AUTHORIZATION and SET ROLE", "url": "/docs/compare/?release=14.14#14.14-4b483cb165d6e486"}], "evidence": "branch-matrix"}, {"id": "CVE-2024-10977", "title": "PostgreSQL libpq retains an error message from man-in-the-middle", "url": "https://www.postgresql.org/support/security/CVE-2024-10977/", "score": 3.1, "vector": "AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N", "description": "Client use of server error message in PostgreSQL allows a server not trusted under current SSL or GSS settings to furnish arbitrary non-NUL bytes to the libpq application. For example, a man-in-the-middle attacker could send a long error message that a human or screen-scraper user of psql mistakes for valid query results. This is probably not a concern for clients where the user interface unambiguously indicates the boundary between one error message and other text. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.\n\nThe PostgreSQL project thanks Jacob Champion for reporting this problem.", "fixed": "14.14", "fixed_url": "/docs/compare/?release=14.14", "affected": "14", "component": "client", "mentions": [{"build": "14.14", "version": "14.14", "title": "Make libpq discard error messages received during SSL or GSS protocol negotiation", "url": "/docs/compare/?release=14.14#14.14-8e4bd7f9b172bf1c"}], "evidence": "branch-matrix"}, {"id": "CVE-2024-10976", "title": "PostgreSQL row security below e.g. subqueries disregards user ID changes", "url": "https://www.postgresql.org/support/security/CVE-2024-10976/", "score": 4.2, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "description": "Incomplete tracking in PostgreSQL of tables with row security allows a reused query to view or change different rows from those intended. CVE-2023-2455 and CVE-2016-2193 fixed most interaction between row security and user ID changes. They missed cases where a subquery, WITH query, security invoker view, or SQL-language function references a table with a row-level security policy. This has the same consequences as the two earlier CVEs. That is to say, it leads to potentially incorrect policies being applied in cases where role-specific policies are used and a given query is planned under one role and then executed under other roles. This scenario can happen under security definer functions or when a common user and query is planned initially and then re-used across multiple SET ROLEs.\n\nApplying an incorrect policy may permit a user to complete otherwise-forbidden reads and modifications. This affects only databases that have used CREATE POLICY to define a row security policy. An attacker must tailor an attack to a particular application's pattern of query plan reuse, user ID changes, and role-specific row security policies. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.", "fixed": "14.14", "fixed_url": "/docs/compare/?release=14.14", "affected": "14", "component": "core server", "mentions": [{"build": "14.14", "version": "14.14", "title": "Ensure cached plans are marked as dependent on the calling role when RLS applies to a non-top-level table reference", "url": "/docs/compare/?release=14.14#14.14-ef2b342695c66732"}], "evidence": "branch-matrix"}, {"id": "CVE-2024-0985", "title": "PostgreSQL non-owner REFRESH MATERIALIZED VIEW CONCURRENTLY executes arbitrary SQL", "url": "https://www.postgresql.org/support/security/CVE-2024-0985/", "score": 8.0, "vector": "AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H", "description": "UPDATE (June 19, 2024) : Added v16 as impacted. Updated description to clarify the attack vector.\n\nLate privilege drop in REFRESH MATERIALIZED VIEW CONCURRENTLY in PostgreSQL allows an object creator to execute arbitrary SQL functions as the command issuer. The command intends to run SQL functions as the owner of the materialized view, enabling safe refresh of untrusted materialized views. The victim is a superuser or member of one of the attacker's roles. The attack requires luring the victim into running REFRESH MATERIALIZED VIEW CONCURRENTLY on the attacker's materialized view.", "fixed": "14.11", "fixed_url": "/docs/compare/?release=14.11", "affected": "14", "component": "core server", "mentions": [{"build": "14.11", "version": "14.11", "title": "Tighten security restrictions within REFRESH MATERIALIZED VIEW CONCURRENTLY", "url": "/docs/compare/?release=14.11#14.11-3d7f07659b2a3553"}], "evidence": "branch-matrix"}, {"id": "CVE-2023-5870", "title": "Role \"pg_signal_backend\" can signal certain superuser processes", "url": "https://www.postgresql.org/support/security/CVE-2023-5870/", "score": 2.2, "vector": "AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:L", "description": "Documentation says the pg_signal_backend role cannot signal \"a backend owned by a superuser\". On the contrary, it can signal background workers, including the logical replication launcher. It can signal autovacuum workers and the autovacuum launcher. Signaling autovacuum workers and those two launchers provides no meaningful exploit, so exploiting this vulnerability requires a non-core extension with a less-resilient background worker. For example, a non-core background worker that does not auto-restart would experience a denial of service with respect to that particular background worker.\n\nThe PostgreSQL project thanks Hemanth Sandrana and Mahendrakar Srinivasarao for reporting this problem.", "fixed": "14.10", "fixed_url": "/docs/compare/?release=14.10", "affected": "14", "component": "core server", "mentions": [{"build": "14.10", "version": "14.10", "title": "Prevent the pg_signal_backend role from signalling background workers and autovacuum processes", "url": "/docs/compare/?release=14.10#14.10-ea5079e94edabc74"}], "evidence": "branch-matrix"}, {"id": "CVE-2023-5869", "title": "Buffer overrun from integer overflow in array modification", "url": "https://www.postgresql.org/support/security/CVE-2023-5869/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "While modifying certain SQL array values, missing overflow checks let authenticated database users write arbitrary bytes to a memory area that facilitates arbitrary code execution. Missing overflow checks also let authenticated database users read a wide area of server memory. The CVE-2021-32027 fix covered some attacks of this description, but it missed others.\n\nThe PostgreSQL project thanks Pedro Gallegos for reporting this problem.", "fixed": "14.10", "fixed_url": "/docs/compare/?release=14.10", "affected": "14", "component": "core server", "mentions": [{"build": "14.13", "version": "14.13", "title": "Detect another integer overflow case while computing new array dimensions", "url": "/docs/compare/?release=14.13#14.13-13f6c9d61147cac5"}, {"build": "14.10", "version": "14.10", "title": "Detect integer overflow while computing new array dimensions", "url": "/docs/compare/?release=14.10#14.10-581b45cad797a532"}], "evidence": "branch-matrix"}, {"id": "CVE-2023-5868", "title": "Memory disclosure in aggregate function calls", "url": "https://www.postgresql.org/support/security/CVE-2023-5868/", "score": 4.3, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "description": "Certain aggregate function calls receiving \"unknown\"-type arguments could disclose bytes of server memory from the end of the \"unknown\"-type value to the next zero byte. One typically gets an \"unknown\"-type value via a string literal having no type designation. We have not confirmed or ruled out viability of attacks that arrange for presence of notable, confidential information in disclosed bytes.\n\nThe PostgreSQL project thanks Jingzhou Fu for reporting this problem.", "fixed": "14.10", "fixed_url": "/docs/compare/?release=14.10", "affected": "14", "component": "core server", "mentions": [{"build": "14.10", "version": "14.10", "title": "Fix handling of unknown-type arguments in DISTINCT \"any\" aggregate functions", "url": "/docs/compare/?release=14.10#14.10-02faee33a889dd5e"}], "evidence": "branch-matrix"}, {"id": "CVE-2023-39417", "title": "Extension script @substitutions@ within quoting allow SQL injection", "url": "https://www.postgresql.org/support/security/CVE-2023-39417/", "score": 7.5, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "An extension script is vulnerable if it uses @extowner@ , @extschema@ , or @extschema:...@ inside a quoting construct (dollar quoting, '' , or \"\" ). No bundled extension is vulnerable. Vulnerable uses do appear in a documentation example and in non-bundled extensions. Hence, the attack prerequisite is an administrator having installed files of a vulnerable, trusted, non-bundled extension. Subject to that prerequisite, this enables an attacker having database-level CREATE privilege to execute arbitrary code as the bootstrap superuser. PostgreSQL will block this attack in the core server, so there's no need to modify individual extensions.\n\nThe PostgreSQL project thanks Micah Gates, Valerie Woolard, Tim Carey-Smith, and Christoph Berg for reporting this problem.", "fixed": "14.9", "fixed_url": "/docs/compare/?release=14.9", "affected": "14", "component": "core server", "mentions": [{"build": "14.9", "version": "14.9", "title": "Disallow substituting a schema or owner name into an extension script if the name contains a quote, backslash, or dollar sign", "url": "/docs/compare/?release=14.9#14.9-478a82e9fe36e0eb"}], "evidence": "branch-matrix"}, {"id": "CVE-2023-2455", "title": "Row security policies disregard user ID changes after inlining", "url": "https://www.postgresql.org/support/security/CVE-2023-2455/", "score": 4.2, "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N", "description": "While CVE-2016-2193 fixed most interaction between row security and user ID changes, it missed a scenario involving function inlining. This leads to potentially incorrect policies being applied in cases where role-specific policies are used and a given query is planned under one role and then executed under other roles. This scenario can happen under security definer functions or when a common user and query is planned initially and then re-used across multiple SET ROLE s. Applying an incorrect policy may permit a user to complete otherwise-forbidden reads and modifications. This affects only databases that have used CREATE POLICY to define a row security policy.\n\nThe PostgreSQL project thanks Wolfgang Walther for reporting this problem.", "fixed": "14.8", "fixed_url": "/docs/compare/?release=14.8", "affected": "14", "component": "core server", "mentions": [{"build": "14.8", "version": "14.8", "title": "Enforce row-level security policies correctly after inlining a set-returning function", "url": "/docs/compare/?release=14.8#14.8-59120cdbb1e5d2b1"}], "evidence": "branch-matrix"}, {"id": "CVE-2023-2454", "title": "CREATE SCHEMA ... schema_element defeats protective search_path changes", "url": "https://www.postgresql.org/support/security/CVE-2023-2454/", "score": 7.2, "vector": "AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H", "description": "This enabled an attacker having database-level CREATE privilege to execute arbitrary code as the bootstrap superuser. Database owners have that right by default, and explicit grants may extend it to other users.\n\nThe PostgreSQL project thanks Alexander Lakhin for reporting this problem.", "fixed": "14.8", "fixed_url": "/docs/compare/?release=14.8", "affected": "14", "component": "core server", "mentions": [{"build": "14.8", "version": "14.8", "title": "Prevent CREATE SCHEMA from defeating changes in search_path", "url": "/docs/compare/?release=14.8#14.8-64bbc83a26f3e0e4"}], "evidence": "branch-matrix"}, {"id": "CVE-2022-41862", "title": "Client memory disclosure when connecting, with Kerberos, to modified server", "url": "https://www.postgresql.org/support/security/CVE-2022-41862/", "score": 3.7, "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N", "description": "A modified, unauthenticated server can send an unterminated string during the establishment of Kerberos transport encryption. When a libpq client application has a Kerberos credential cache and doesn't explicitly disable option gssencmode , a server can cause libpq to over-read and report an error message containing uninitialized bytes from and following its receive buffer. If libpq's caller somehow makes that message accessible to the attacker, this achieves a disclosure of the over-read bytes. We have not confirmed or ruled out viability of attacks that arrange for a crash or for presence of notable, confidential information in disclosed bytes.\n\nThe PostgreSQL project thanks Jacob Champion for reporting this problem.", "fixed": "14.7", "fixed_url": "/docs/compare/?release=14.7", "affected": "14", "component": "client", "mentions": [{"build": "14.7", "version": "14.7", "title": "libpq can leak memory contents after GSSAPI transport encryption initiation fails", "url": "/docs/compare/?release=14.7#14.7-2dbd2730debe7f61"}], "evidence": "branch-matrix"}, {"id": "CVE-2022-2625", "title": "Extension scripts replace objects not belonging to the extension", "url": "https://www.postgresql.org/support/security/CVE-2022-2625/", "score": 7.1, "vector": "AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H", "description": "Some extensions use CREATE OR REPLACE or CREATE IF NOT EXISTS commands. Some don't adhere to the documented rule to target only objects known to be extension members already. An attack requires permission to create non-temporary objects in at least one schema, ability to lure or wait for an administrator to create or update an affected extension in that schema, and ability to lure or wait for a victim to use the object targeted in CREATE OR REPLACE or CREATE IF NOT EXISTS . Given all three prerequisites, the attacker can run arbitrary code as the victim role, which may be a superuser. Known-affected extensions include both PostgreSQL-bundled and non-bundled extensions. PostgreSQL is blocking this attack in the core server, so there's no need to modify individual extensions.\n\nThe PostgreSQL project thanks Sven Klemm for reporting this problem.", "fixed": "14.5", "fixed_url": "/docs/compare/?release=14.5", "affected": "14", "component": "core server", "mentions": [{"build": "14.5", "version": "14.5", "title": "Do not let extension scripts replace objects not already belonging to the extension", "url": "/docs/compare/?release=14.5#14.5-f18192a896faf696"}], "evidence": "branch-matrix"}, {"id": "CVE-2022-1552", "title": "Autovacuum, REINDEX, and others omit \"security restricted operation\" sandbox", "url": "https://www.postgresql.org/support/security/CVE-2022-1552/", "score": 8.8, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "description": "Autovacuum, REINDEX , CREATE INDEX , REFRESH MATERIALIZED VIEW , CLUSTER , and pg_amcheck made incomplete efforts to operate safely when a privileged user is maintaining another user's objects. Those commands activated relevant protections too late or not at all. An attacker having permission to create non-temp objects in at least one schema could execute arbitrary SQL functions under a superuser identity.\n\nWhile promptly updating PostgreSQL is the best remediation for most users, a user unable to do that can work around the vulnerability by disabling autovacuum, not manually running the above commands, and not restoring from output of the pg_dump command. Performance may degrade quickly under this workaround. VACUUM is safe, and all commands are fine when a trusted user owns the target object.\n\nThe PostgreSQL project thanks Alexander Lakhin for reporting this problem.", "fixed": "14.3", "fixed_url": "/docs/compare/?release=14.3", "affected": "14", "component": "core server", "mentions": [{"build": "14.5", "version": "14.5", "title": "Fix permissions checks in CREATE INDEX", "url": "/docs/compare/?release=14.5#14.5-5abd146c9f585b45"}, {"build": "14.3", "version": "14.3", "title": "Confine additional operations within \u201csecurity restricted operation\u201d sandboxes", "url": "/docs/compare/?release=14.3#14.3-a23393de94e369b8"}], "evidence": "branch-matrix"}, {"id": "CVE-2021-23222", "title": "libpq processes unencrypted bytes from man-in-the-middle", "url": "https://www.postgresql.org/support/security/CVE-2021-23222/", "score": 3.7, "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N", "description": "A man-in-the-middle attacker can inject false responses to the client's first few queries, despite the use of SSL certificate verification and encryption.\n\nIf more preconditions hold, the attacker can exfiltrate the client's password or other confidential data that might be transmitted early in a session. The attacker must have a way to trick the client's intended server into making the confidential data accessible to the attacker. A known implementation having that property is a PostgreSQL configuration vulnerable to CVE-2021-23214 . As with any exploitation of CVE-2021-23214 , the server must be using trust authentication with a clientcert requirement or using cert authentication. To disclose a password, the client must be in possession of a password, which is atypical when using an authentication configuration vulnerable to CVE-2021-23214 . The attacker must have some other way to access the server to retrieve the exfiltrated data (a valid, unprivileged login account would be sufficient).\n\nThe PostgreSQL project thanks Jacob Champion for reporting this problem.", "fixed": "14.1", "fixed_url": "/docs/compare/?release=14.1", "affected": "14", "component": "client", "mentions": [{"build": "14.1", "version": "14.1", "title": "Make libpq reject extraneous data after an SSL or GSS encryption handshake", "url": "/docs/compare/?release=14.1#14.1-2148a2c0309fac1a"}], "evidence": "branch-matrix"}, {"id": "CVE-2021-23214", "title": "Server processes unencrypted bytes from man-in-the-middle", "url": "https://www.postgresql.org/support/security/CVE-2021-23214/", "score": 8.1, "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "description": "When the server is configured to use trust authentication with a clientcert requirement or to use cert authentication, a man-in-the-middle attacker can inject arbitrary SQL queries when a connection is first established, despite the use of SSL certificate verification and encryption. This is similar to CVE-2011-0411 (different product).\n\nThe PostgreSQL project thanks Jacob Champion for reporting this problem.", "fixed": "14.1", "fixed_url": "/docs/compare/?release=14.1", "affected": "14", "component": "core server", "mentions": [{"build": "14.1", "version": "14.1", "title": "Make the server reject extraneous data after an SSL or GSS encryption handshake", "url": "/docs/compare/?release=14.1#14.1-1856c71e2cf03259"}, {"build": "14.1", "version": "14.1", "title": "Make libpq reject extraneous data after an SSL or GSS encryption handshake", "url": "/docs/compare/?release=14.1#14.1-2148a2c0309fac1a"}], "evidence": "branch-matrix"}, {"id": "CVE-2017-7484", "title": "selectivity estimators bypass SELECT privilege checks", "url": "https://www.postgresql.org/support/security/CVE-2017-7484/", "score": 4.3, "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "description": "", "fixed": "", "fixed_url": "", "affected": "", "component": "core server", "mentions": [{"build": "14.19", "version": "14.19", "title": "Tighten security checks in planner estimation functions", "url": "/docs/compare/?release=14.19#14.19-37596904cdde57bc"}], "evidence": "release-note-mention"}, {"id": "CVE-2012-0868", "title": "Line breaks in object names can be exploited to execute arbitrary SQL when reloading a pg_dump file.", "url": "https://www.postgresql.org/support/security/CVE-2012-0868/", "score": null, "vector": "", "description": "", "fixed": "", "fixed_url": "", "affected": "", "component": "", "mentions": [{"build": "14.19", "version": "14.19", "title": "Convert newlines to spaces in names included in comments in pg_dump output", "url": "/docs/compare/?release=14.19#14.19-fb4152603ed81a9f"}], "evidence": "release-note-mention"}], "security_covered": true, "release_as_of": "2026-09-26", "security_as_of": "2026-09-26", "policy_url": "https://www.postgresql.org/support/versioning/", "pdfs": [{"label": "A4 PDF", "bytes": 14354704, "url": "/files/documentation/pdf/14/postgresql-14-A4.pdf"}, {"label": "US Letter PDF", "bytes": 14242178, "url": "/files/documentation/pdf/14/postgresql-14-US.pdf"}], "query": "", "selected_kind": "", "branches": [{"branch": "20", "url": "/wiki/versions/20/", "state": "devel", "state_label": "Development", "tag": "devel", "build": "20devel", "first_release": "", "end_of_life": "", "latest_release_date": "", "manual_url": "/docs/devel/index.html", "manual_slug": "devel", "manual_pages": 1162, "manual_loaded_at": "2026-09-28T13:12:51.679520", "source_revision": "", "release_count": 0, "entry_count": 0, "initial": null, "latest": null, "comparison_url": ""}, {"branch": "19", "url": "/wiki/versions/19/", "state": "beta", "state_label": "Preview", "tag": "beta 4", "build": "19beta4", "first_release": "", "end_of_life": "", "latest_release_date": "", "manual_url": "/docs/19/index.html", "manual_slug": "19", "manual_pages": 1160, "manual_loaded_at": "2026-09-27T00:10:47.078613", "source_revision": "", "release_count": 1, "entry_count": 198, "initial": {"version": "19.0", "build": "19beta4", "status": "preview", "date": "", "source_as_of": "2026-09-14", "url": "/docs/compare/?release=19.0", "manual_url": "/docs/19/release-19.html", "source_url": "/docs/release/19.0/", "entry_count": 198, "categories": {"compatibility": 17, "feature": 161, "performance": 20}, "compatibility_count": 17, "cves": [], "cve_count": 0}, "latest": {"version": "19.0", "build": "19beta4", "status": "preview", "date": "", "source_as_of": "2026-09-14", "url": "/docs/compare/?release=19.0", "manual_url": "/docs/19/release-19.html", "source_url": "/docs/release/19.0/", "entry_count": 198, "categories": {"compatibility": 17, "feature": 161, "performance": 20}, "compatibility_count": 17, "cves": [], "cve_count": 0}, "comparison_url": ""}, {"branch": "18", "url": "/wiki/versions/18/", "state": "current", "state_label": "Current stable", "tag": "current", "build": "18.6", "first_release": "2025-09-25", "end_of_life": "2030-11-14", "latest_release_date": "2026-08-13", "manual_url": "/docs/18/index.html", "manual_slug": "18", "manual_pages": 1151, "manual_loaded_at": "2026-09-27T00:10:47.078613", "source_revision": "", "release_count": 6, "entry_count": 561, "initial": {"version": "18.0", "build": "18.0", "status": "stable", "date": "2025-09-25", "source_as_of": "", "url": "/docs/compare/?release=18.0", "manual_url": "/docs/18/release-18.html", "source_url": "/docs/release/18.0/", "entry_count": 210, "categories": {"compatibility": 11, "feature": 188, "performance": 10, "bugfix": 1}, "compatibility_count": 11, "cves": [], "cve_count": 0}, "latest": {"version": "18.6", "build": "18.6", "status": "stable", "date": "2026-08-13", "source_as_of": "", "url": "/docs/compare/?release=18.6", "manual_url": "/docs/18/release-18-6.html", "source_url": "/docs/release/18.6/", "entry_count": 140, "categories": {"security": 29, "improvement": 46, "bugfix": 65}, "compatibility_count": 0, "cves": ["CVE-2025-8714", "CVE-2026-14662", "CVE-2026-14663", "CVE-2026-14664", "CVE-2026-14666", "CVE-2026-14668", "CVE-2026-14669", "CVE-2026-14670", "CVE-2026-14671", "CVE-2026-14672", "CVE-2026-14673", "CVE-2026-14676", "CVE-2026-14677", "CVE-2026-14678", "CVE-2026-14679", "CVE-2026-14680", "CVE-2026-14681", "CVE-2026-15741", "CVE-2026-15742", "CVE-2026-16238", "CVE-2026-16239", "CVE-2026-16241", "CVE-2026-18024", "CVE-2026-18408", "CVE-2026-19385", "CVE-2026-6464", "CVE-2026-6469", "CVE-2026-6470", "CVE-2026-6471", "CVE-2026-6473", "CVE-2026-6637"], "cve_count": 31}, "comparison_url": "/docs/compare/?from=18.0&to=18.6"}, {"branch": "17", "url": "/wiki/versions/17/", "state": "supported", "state_label": "Supported", "tag": "", "build": "17.11", "first_release": "2024-09-26", "end_of_life": "2029-11-08", "latest_release_date": "2026-08-13", "manual_url": "/docs/17/index.html", "manual_slug": "17", "manual_pages": 1146, "manual_loaded_at": "2026-09-27T00:10:47.078613", "source_revision": "", "release_count": 12, "entry_count": 727, "initial": {"version": "17.0", "build": "17.0", "status": "stable", "date": "2024-09-26", "source_as_of": "", "url": "/docs/compare/?release=17.0", "manual_url": "/docs/17/release-17.html", "source_url": "/docs/release/17.0/", "entry_count": 182, "categories": {"compatibility": 17, "feature": 154, "bugfix": 2, "performance": 9}, "compatibility_count": 17, "cves": [], "cve_count": 0}, "latest": {"version": "17.11", "build": "17.11", "status": "stable", "date": "2026-08-13", "source_as_of": "", "url": "/docs/compare/?release=17.11", "manual_url": "/docs/17/release-17-11.html", "source_url": "/docs/release/17.11/", "entry_count": 109, "categories": {"security": 29, "bugfix": 49, "improvement": 31}, "compatibility_count": 0, "cves": ["CVE-2025-8714", "CVE-2026-14662", "CVE-2026-14663", "CVE-2026-14664", "CVE-2026-14666", "CVE-2026-14668", "CVE-2026-14669", "CVE-2026-14670", "CVE-2026-14671", "CVE-2026-14672", "CVE-2026-14673", "CVE-2026-14676", "CVE-2026-14677", "CVE-2026-14678", "CVE-2026-14679", "CVE-2026-14680", "CVE-2026-14681", "CVE-2026-15741", "CVE-2026-15742", "CVE-2026-16238", "CVE-2026-16239", "CVE-2026-16241", "CVE-2026-18024", "CVE-2026-18408", "CVE-2026-19385", "CVE-2026-6464", "CVE-2026-6469", "CVE-2026-6470", "CVE-2026-6471", "CVE-2026-6473", "CVE-2026-6637"], "cve_count": 31}, "comparison_url": "/docs/compare/?from=17.0&to=17.11"}, {"branch": "16", "url": "/wiki/versions/16/", "state": "supported", "state_label": "Supported", "tag": "", "build": "16.15", "first_release": "2023-09-14", "end_of_life": "2028-11-09", "latest_release_date": "2026-08-13", "manual_url": "/docs/16/index.html", "manual_slug": "16", "manual_pages": 1172, "manual_loaded_at": "2026-09-27T00:10:47.078613", "source_revision": "", "release_count": 16, "entry_count": 930, "initial": {"version": "16.0", "build": "16.0", "status": "stable", "date": "2023-09-14", "source_as_of": "", "url": "/docs/compare/?release=16.0", "manual_url": "/docs/16/release-16.html", "source_url": "/docs/release/16.0/", "entry_count": 206, "categories": {"compatibility": 13, "feature": 175, "performance": 15, "bugfix": 3}, "compatibility_count": 13, "cves": [], "cve_count": 0}, "latest": {"version": "16.15", "build": "16.15", "status": "stable", "date": "2026-08-13", "source_as_of": "", "url": "/docs/compare/?release=16.15", "manual_url": "/docs/16/release-16-15.html", "source_url": "/docs/release/16.15/", "entry_count": 98, "categories": {"security": 29, "bugfix": 42, "improvement": 27}, "compatibility_count": 0, "cves": ["CVE-2025-8714", "CVE-2026-14662", "CVE-2026-14663", "CVE-2026-14664", "CVE-2026-14666", "CVE-2026-14668", "CVE-2026-14669", "CVE-2026-14670", "CVE-2026-14671", "CVE-2026-14672", "CVE-2026-14673", "CVE-2026-14676", "CVE-2026-14677", "CVE-2026-14678", "CVE-2026-14679", "CVE-2026-14680", "CVE-2026-14681", "CVE-2026-15741", "CVE-2026-15742", "CVE-2026-16238", "CVE-2026-16239", "CVE-2026-16241", "CVE-2026-18024", "CVE-2026-18408", "CVE-2026-19385", "CVE-2026-6464", "CVE-2026-6469", "CVE-2026-6470", "CVE-2026-6471", "CVE-2026-6473", "CVE-2026-6637"], "cve_count": 31}, "comparison_url": "/docs/compare/?from=16.0&to=16.15"}, {"branch": "15", "url": "/wiki/versions/15/", "state": "supported", "state_label": "Supported", "tag": "", "build": "15.19", "first_release": "2022-10-13", "end_of_life": "2027-11-11", "latest_release_date": "2026-08-13", "manual_url": "/docs/15/index.html", "manual_slug": "15", "manual_pages": 1171, "manual_loaded_at": "2026-09-27T00:10:47.078613", "source_revision": "", "release_count": 20, "entry_count": 1046, "initial": {"version": "15.0", "build": "15.0", "status": "stable", "date": "2022-10-13", "source_as_of": "", "url": "/docs/compare/?release=15.0", "manual_url": "/docs/15/release-15.html", "source_url": "/docs/release/15.0/", "entry_count": 184, "categories": {"security": 1, "compatibility": 30, "feature": 135, "bugfix": 3, "performance": 15}, "compatibility_count": 31, "cves": ["CVE-2018-1058"], "cve_count": 1}, "latest": {"version": "15.19", "build": "15.19", "status": "stable", "date": "2026-08-13", "source_as_of": "", "url": "/docs/compare/?release=15.19", "manual_url": "/docs/15/release-15-19.html", "source_url": "/docs/release/15.19/", "entry_count": 90, "categories": {"security": 29, "bugfix": 36, "improvement": 25}, "compatibility_count": 0, "cves": ["CVE-2025-8714", "CVE-2026-14662", "CVE-2026-14663", "CVE-2026-14664", "CVE-2026-14666", "CVE-2026-14668", "CVE-2026-14669", "CVE-2026-14670", "CVE-2026-14671", "CVE-2026-14672", "CVE-2026-14673", "CVE-2026-14676", "CVE-2026-14677", "CVE-2026-14678", "CVE-2026-14679", "CVE-2026-14680", "CVE-2026-14681", "CVE-2026-15741", "CVE-2026-15742", "CVE-2026-16238", "CVE-2026-16239", "CVE-2026-16241", "CVE-2026-18024", "CVE-2026-18408", "CVE-2026-19385", "CVE-2026-6464", "CVE-2026-6469", "CVE-2026-6470", "CVE-2026-6471", "CVE-2026-6473", "CVE-2026-6637"], "cve_count": 31}, "comparison_url": "/docs/compare/?from=15.0&to=15.19"}, {"branch": "14", "url": "/wiki/versions/14/", "state": "supported", "state_label": "Supported", "tag": "", "build": "14.24", "first_release": "2021-09-30", "end_of_life": "2026-11-12", "latest_release_date": "2026-08-13", "manual_url": "/docs/14/index.html", "manual_slug": "14", "manual_pages": 1161, "manual_loaded_at": "2026-09-27T00:10:47.078613", "source_revision": "", "release_count": 25, "entry_count": 1206, "initial": {"version": "14.0", "build": "14.0", "status": "stable", "date": "2021-09-30", "source_as_of": "", "url": "/docs/compare/?release=14.0", "manual_url": "/docs/14/release-14.html", "source_url": "/docs/release/14.0/", "entry_count": 220, "categories": {"compatibility": 27, "feature": 178, "performance": 13, "bugfix": 2}, "compatibility_count": 27, "cves": [], "cve_count": 0}, "latest": {"version": "14.24", "build": "14.24", "status": "stable", "date": "2026-08-13", "source_as_of": "", "url": "/docs/compare/?release=14.24", "manual_url": "/docs/14/release-14-24.html", "source_url": "/docs/release/14.24/", "entry_count": 83, "categories": {"security": 29, "bugfix": 31, "improvement": 23}, "compatibility_count": 0, "cves": ["CVE-2025-8714", "CVE-2026-14662", "CVE-2026-14663", "CVE-2026-14664", "CVE-2026-14666", "CVE-2026-14668", "CVE-2026-14669", "CVE-2026-14670", "CVE-2026-14671", "CVE-2026-14672", "CVE-2026-14673", "CVE-2026-14676", "CVE-2026-14677", "CVE-2026-14678", "CVE-2026-14679", "CVE-2026-14680", "CVE-2026-14681", "CVE-2026-15741", "CVE-2026-15742", "CVE-2026-16238", "CVE-2026-16239", "CVE-2026-16241", "CVE-2026-18024", "CVE-2026-18408", "CVE-2026-19385", "CVE-2026-6464", "CVE-2026-6469", "CVE-2026-6470", "CVE-2026-6471", "CVE-2026-6473", "CVE-2026-6637"], "cve_count": 31}, "comparison_url": "/docs/compare/?from=14.0&to=14.24"}, {"branch": "13", "url": "/wiki/versions/13/", "state": "eol", "state_label": "End of life", "tag": "", "build": "13.23", "first_release": "2020-09-24", "end_of_life": "2025-11-13", "latest_release_date": "2025-11-13", "manual_url": "/docs/13/index.html", "manual_slug": "13", "manual_pages": 1142, "manual_loaded_at": "2026-09-27T00:10:47.078613", "source_revision": "", "release_count": 24, "entry_count": 1164, "initial": {"version": "13.0", "build": "13.0", "status": "stable", "date": "2020-09-24", "source_as_of": "", "url": "/docs/compare/?release=13.0", "manual_url": "/docs/13/release-13.html", "source_url": "/docs/release/13.0/", "entry_count": 178, "categories": {"compatibility": 15, "feature": 143, "performance": 16, "bugfix": 4}, "compatibility_count": 15, "cves": [], "cve_count": 0}, "latest": {"version": "13.23", "build": "13.23", "status": "stable", "date": "2025-11-13", "source_as_of": "", "url": "/docs/compare/?release=13.23", "manual_url": "/docs/13/release-13-23.html", "source_url": "/docs/release/13.23/", "entry_count": 43, "categories": {"security": 2, "bugfix": 22, "improvement": 19}, "compatibility_count": 0, "cves": ["CVE-2025-12817", "CVE-2025-12818"], "cve_count": 2}, "comparison_url": "/docs/compare/?from=13.0&to=13.23"}, {"branch": "12", "url": "/wiki/versions/12/", "state": "eol", "state_label": "End of life", "tag": "", "build": "12.22", "first_release": "2019-10-03", "end_of_life": "2024-11-21", "latest_release_date": "2024-11-21", "manual_url": "/docs/12/index.html", "manual_slug": "12", "manual_pages": 1133, "manual_loaded_at": "2026-09-27T00:10:47.078613", "source_revision": "", "release_count": 23, "entry_count": 1181, "initial": {"version": "12.0", "build": "12.0", "status": "stable", "date": "2019-10-03", "source_as_of": "", "url": "/docs/compare/?release=12.0", "manual_url": "/docs/12/release-12.html", "source_url": "/docs/release/12.0/", "entry_count": 180, "categories": {"compatibility": 23, "performance": 14, "feature": 139, "bugfix": 4}, "compatibility_count": 23, "cves": [], "cve_count": 0}, "latest": {"version": "12.22", "build": "12.22", "status": "stable", "date": "2024-11-21", "source_as_of": "", "url": "/docs/compare/?release=12.22", "manual_url": "/docs/12/release-12-22.html", "source_url": "/docs/release/12.22/", "entry_count": 1, "categories": {"security": 1}, "compatibility_count": 0, "cves": ["CVE-2024-10978"], "cve_count": 1}, "comparison_url": "/docs/compare/?from=12.0&to=12.22"}, {"branch": "11", "url": "/wiki/versions/11/", "state": "eol", "state_label": "End of life", "tag": "", "build": "11.22", "first_release": "2018-10-18", "end_of_life": "2023-11-09", "latest_release_date": "2023-11-09", "manual_url": "/docs/11/index.html", "manual_slug": "11", "manual_pages": 1125, "manual_loaded_at": "2026-09-27T00:10:47.078613", "source_revision": "", "release_count": 23, "entry_count": 1141, "initial": {"version": "11.0", "build": "11.0", "status": "stable", "date": "2018-10-18", "source_as_of": "", "url": "/docs/compare/?release=11.0", "manual_url": "/docs/11/release-11.html", "source_url": "/docs/release/11.0/", "entry_count": 170, "categories": {"compatibility": 20, "feature": 134, "performance": 15, "bugfix": 1}, "compatibility_count": 20, "cves": [], "cve_count": 0}, "latest": {"version": "11.22", "build": "11.22", "status": "stable", "date": "2023-11-09", "source_as_of": "", "url": "/docs/compare/?release=11.22", "manual_url": "/docs/11/release-11-22.html", "source_url": "/docs/release/11.22/", "entry_count": 31, "categories": {"security": 3, "bugfix": 10, "improvement": 18}, "compatibility_count": 0, "cves": ["CVE-2023-5868", "CVE-2023-5869", "CVE-2023-5870"], "cve_count": 3}, "comparison_url": "/docs/compare/?from=11.0&to=11.22"}, {"branch": "10", "url": "/wiki/versions/10/", "state": "eol", "state_label": "End of life", "tag": "", "build": "10.23", "first_release": "2017-10-05", "end_of_life": "2022-11-10", "latest_release_date": "2022-11-10", "manual_url": "/docs/10/index.html", "manual_slug": "10", "manual_pages": 1085, "manual_loaded_at": "2026-09-27T00:10:47.078613", "source_revision": "", "release_count": 24, "entry_count": 1140, "initial": {"version": "10.0", "build": "10.0", "status": "stable", "date": "2017-10-05", "source_as_of": "", "url": "/docs/compare/?release=10.0", "manual_url": "/docs/10/release-10.html", "source_url": "/docs/release/10.0/", "entry_count": 189, "categories": {"compatibility": 27, "feature": 148, "performance": 12, "bugfix": 2}, "compatibility_count": 27, "cves": [], "cve_count": 0}, "latest": {"version": "10.23", "build": "10.23", "status": "stable", "date": "2022-11-10", "source_as_of": "", "url": "/docs/compare/?release=10.23", "manual_url": "/docs/10/release-10-23.html", "source_url": "/docs/release/10.23/", "entry_count": 29, "categories": {"bugfix": 13, "improvement": 16}, "compatibility_count": 0, "cves": [], "cve_count": 0}, "comparison_url": "/docs/compare/?from=10.0&to=10.23"}, {"branch": "9.6", "url": "/wiki/versions/9.6/", "state": "eol", "state_label": "End of life", "tag": "", "build": "9.6.24", "first_release": "2016-09-29", "end_of_life": "2021-11-11", "latest_release_date": "2021-11-11", "manual_url": "/docs/9.6/index.html", "manual_slug": "9.6", "manual_pages": 1046, "manual_loaded_at": "2026-09-27T00:10:47.078613", "source_revision": "", "release_count": 25, "entry_count": 1105, "initial": {"version": "9.6.0", "build": "9.6.0", "status": "stable", "date": "2016-09-29", "source_as_of": "", "url": "/docs/compare/?release=9.6.0", "manual_url": "/docs/9.6/release-9-6.html", "source_url": "/docs/release/9.6.0/", "entry_count": 214, "categories": {"compatibility": 13, "feature": 169, "performance": 26, "bugfix": 6}, "compatibility_count": 13, "cves": [], "cve_count": 0}, "latest": {"version": "9.6.24", "build": "9.6.24", "status": "stable", "date": "2021-11-11", "source_as_of": "", "url": "/docs/compare/?release=9.6.24", "manual_url": "/docs/9.6/release-9-6-24.html", "source_url": "/docs/release/9.6.24/", "entry_count": 40, "categories": {"security": 2, "bugfix": 18, "improvement": 19, "performance": 1}, "compatibility_count": 0, "cves": ["CVE-2021-23214", "CVE-2021-23222"], "cve_count": 2}, "comparison_url": "/docs/compare/?from=9.6.0&to=9.6.24"}, {"branch": "9.5", "url": "/wiki/versions/9.5/", "state": "eol", "state_label": "End of life", "tag": "", "build": "9.5.25", "first_release": "2016-01-07", "end_of_life": "2021-02-11", "latest_release_date": "2021-02-11", "manual_url": "/docs/9.5/index.html", "manual_slug": "9.5", "manual_pages": 1029, "manual_loaded_at": "2026-09-27T00:10:47.078613", "source_revision": "", "release_count": 26, "entry_count": 1026, "initial": {"version": "9.5.0", "build": "9.5.0", "status": "stable", "date": "2016-01-07", "source_as_of": "", "url": "/docs/compare/?release=9.5.0", "manual_url": "/docs/9.5/release-9-5.html", "source_url": "/docs/release/9.5.0/", "entry_count": 193, "categories": {"compatibility": 12, "feature": 163, "performance": 17, "bugfix": 1}, "compatibility_count": 12, "cves": [], "cve_count": 0}, "latest": {"version": "9.5.25", "build": "9.5.25", "status": "stable", "date": "2021-02-11", "source_as_of": "", "url": "/docs/compare/?release=9.5.25", "manual_url": "/docs/9.5/release-9-5-25.html", "source_url": "/docs/release/9.5.25/", "entry_count": 32, "categories": {"bugfix": 15, "improvement": 17}, "compatibility_count": 0, "cves": [], "cve_count": 0}, "comparison_url": "/docs/compare/?from=9.5.0&to=9.5.25"}, {"branch": "9.4", "url": "/wiki/versions/9.4/", "state": "eol", "state_label": "End of life", "tag": "", "build": "9.4.26", "first_release": "2014-12-18", "end_of_life": "2020-02-13", "latest_release_date": "2020-02-13", "manual_url": "/docs/9.4/index.html", "manual_slug": "9.4", "manual_pages": 1002, "manual_loaded_at": "2026-09-27T00:10:47.078613", "source_revision": "", "release_count": 27, "entry_count": 1007, "initial": {"version": "9.4.0", "build": "9.4.0", "status": "stable", "date": "2014-12-18", "source_as_of": "", "url": "/docs/compare/?release=9.4.0", "manual_url": "/docs/9.4/release-9-4.html", "source_url": "/docs/release/9.4.0/", "entry_count": 211, "categories": {"compatibility": 22, "feature": 171, "bugfix": 6, "performance": 12}, "compatibility_count": 22, "cves": [], "cve_count": 0}, "latest": {"version": "9.4.26", "build": "9.4.26", "status": "stable", "date": "2020-02-13", "source_as_of": "", "url": "/docs/compare/?release=9.4.26", "manual_url": "/docs/9.4/release-9-4-26.html", "source_url": "/docs/release/9.4.26/", "entry_count": 28, "categories": {"improvement": 12, "bugfix": 15, "performance": 1}, "compatibility_count": 0, "cves": [], "cve_count": 0}, "comparison_url": "/docs/compare/?from=9.4.0&to=9.4.26"}, {"branch": "9.3", "url": "/wiki/versions/9.3/", "state": "eol", "state_label": "End of life", "tag": "", "build": "9.3.25", "first_release": "2013-09-09", "end_of_life": "2018-11-08", "latest_release_date": "2018-11-08", "manual_url": "/docs/9.3/index.html", "manual_slug": "9.3", "manual_pages": 1265, "manual_loaded_at": "2026-09-27T00:10:47.078613", "source_revision": "", "release_count": 26, "entry_count": 968, "initial": {"version": "9.3.0", "build": "9.3.0", "status": "stable", "date": "2013-09-09", "source_as_of": "", "url": "/docs/compare/?release=9.3.0", "manual_url": "/docs/9.3/release-9-3.html", "source_url": "/docs/release/9.3.0/", "entry_count": 177, "categories": {"compatibility": 10, "feature": 148, "performance": 13, "bugfix": 6}, "compatibility_count": 10, "cves": [], "cve_count": 0}, "latest": {"version": "9.3.25", "build": "9.3.25", "status": "stable", "date": "2018-11-08", "source_as_of": "", "url": "/docs/compare/?release=9.3.25", "manual_url": "/docs/9.3/release-9-3-25.html", "source_url": "/docs/release/9.3.25/", "entry_count": 35, "categories": {"bugfix": 17, "improvement": 18}, "compatibility_count": 0, "cves": [], "cve_count": 0}, "comparison_url": "/docs/compare/?from=9.3.0&to=9.3.25"}, {"branch": "9.2", "url": "/wiki/versions/9.2/", "state": "eol", "state_label": "End of life", "tag": "", "build": "9.2.24", "first_release": "2012-09-10", "end_of_life": "2017-11-09", "latest_release_date": "2017-11-09", "manual_url": "/docs/9.2/index.html", "manual_slug": "9.2", "manual_pages": 1218, "manual_loaded_at": "2026-09-27T00:10:47.078613", "source_revision": "", "release_count": 25, "entry_count": 968, "initial": {"version": "9.2.0", "build": "9.2.0", "status": "stable", "date": "2012-09-10", "source_as_of": "", "url": "/docs/compare/?release=9.2.0", "manual_url": "/docs/9.2/release-9-2.html", "source_url": "/docs/release/9.2.0/", "entry_count": 238, "categories": {"compatibility": 23, "feature": 197, "performance": 12, "bugfix": 6}, "compatibility_count": 23, "cves": [], "cve_count": 0}, "latest": {"version": "9.2.24", "build": "9.2.24", "status": "stable", "date": "2017-11-09", "source_as_of": "", "url": "/docs/compare/?release=9.2.24", "manual_url": "/docs/9.2/release-9-2-24.html", "source_url": "/docs/release/9.2.24/", "entry_count": 13, "categories": {"security": 1, "improvement": 7, "bugfix": 5}, "compatibility_count": 0, "cves": ["CVE-2017-12172"], "cve_count": 1}, "comparison_url": "/docs/compare/?from=9.2.0&to=9.2.24"}, {"branch": "9.1", "url": "/wiki/versions/9.1/", "state": "eol", "state_label": "End of life", "tag": "", "build": "9.1.24", "first_release": "2011-09-12", "end_of_life": "2016-10-27", "latest_release_date": "2016-10-27", "manual_url": "/docs/9.1/index.html", "manual_slug": "9.1", "manual_pages": 1165, "manual_loaded_at": "2026-09-27T00:10:47.078613", "source_revision": "", "release_count": 25, "entry_count": 895, "initial": {"version": "9.1.0", "build": "9.1.0", "status": "stable", "date": "2011-09-12", "source_as_of": "", "url": "/docs/compare/?release=9.1.0", "manual_url": "/docs/9.1/release-9-1.html", "source_url": "/docs/release/9.1.0/", "entry_count": 203, "categories": {"compatibility": 17, "feature": 174, "performance": 3, "bugfix": 9}, "compatibility_count": 17, "cves": [], "cve_count": 0}, "latest": {"version": "9.1.24", "build": "9.1.24", "status": "stable", "date": "2016-10-27", "source_as_of": "", "url": "/docs/compare/?release=9.1.24", "manual_url": "/docs/9.1/release-9-1-24.html", "source_url": "/docs/release/9.1.24/", "entry_count": 13, "categories": {"bugfix": 7, "improvement": 6}, "compatibility_count": 0, "cves": [], "cve_count": 0}, "comparison_url": "/docs/compare/?from=9.1.0&to=9.1.24"}, {"branch": "9.0", "url": "/wiki/versions/9.0/", "state": "eol", "state_label": "End of life", "tag": "", "build": "9.0.23", "first_release": "2010-09-20", "end_of_life": "2015-10-08", "latest_release_date": "2015-10-08", "manual_url": "/docs/9.0/index.html", "manual_slug": "9.0", "manual_pages": 1086, "manual_loaded_at": "2026-09-27T00:10:47.078613", "source_revision": "", "release_count": 24, "entry_count": 850, "initial": {"version": "9.0.0", "build": "9.0.0", "status": "stable", "date": "2010-09-20", "source_as_of": "", "url": "/docs/compare/?release=9.0.0", "manual_url": "/docs/9.0/release-9-0.html", "source_url": "/docs/release/9.0.0/", "entry_count": 237, "categories": {"compatibility": 20, "feature": 206, "performance": 6, "bugfix": 5}, "compatibility_count": 20, "cves": [], "cve_count": 0}, "latest": {"version": "9.0.23", "build": "9.0.23", "status": "stable", "date": "2015-10-08", "source_as_of": "", "url": "/docs/compare/?release=9.0.23", "manual_url": "/docs/9.0/release-9-0-23.html", "source_url": "/docs/release/9.0.23/", "entry_count": 47, "categories": {"security": 1, "bugfix": 25, "improvement": 21}, "compatibility_count": 0, "cves": ["CVE-2015-5288"], "cve_count": 1}, "comparison_url": "/docs/compare/?from=9.0.0&to=9.0.23"}, {"branch": "8.4", "url": "/wiki/versions/8.4/", "state": "eol", "state_label": "End of life", "tag": "", "build": "8.4.22", "first_release": "2009-07-01", "end_of_life": "2014-07-24", "latest_release_date": "2014-07-24", "manual_url": "/docs/8.4/index.html", "manual_slug": "8.4", "manual_pages": 1029, "manual_loaded_at": "2026-09-27T00:10:47.078613", "source_revision": "", "release_count": 0, "entry_count": 0, "initial": null, "latest": null, "comparison_url": ""}, {"branch": "8.3", "url": "/wiki/versions/8.3/", "state": "eol", "state_label": "End of life", "tag": "", "build": "8.3.23", "first_release": "2008-02-04", "end_of_life": "2013-02-07", "latest_release_date": "2013-02-07", "manual_url": "/docs/8.3/index.html", "manual_slug": "8.3", "manual_pages": 974, "manual_loaded_at": "2026-09-27T00:10:47.078613", "source_revision": "", "release_count": 0, "entry_count": 0, "initial": null, "latest": null, "comparison_url": ""}, {"branch": "8.2", "url": "/wiki/versions/8.2/", "state": "eol", "state_label": "End of life", "tag": "", "build": "8.2.23", "first_release": "2006-12-05", "end_of_life": "2011-12-05", "latest_release_date": "2011-12-05", "manual_url": "/docs/8.2/index.html", "manual_slug": "8.2", "manual_pages": 843, "manual_loaded_at": "2026-09-27T00:10:47.078613", "source_revision": "", "release_count": 0, "entry_count": 0, "initial": null, "latest": null, "comparison_url": ""}, {"branch": "8.1", "url": "/wiki/versions/8.1/", "state": "eol", "state_label": "End of life", "tag": "", "build": "8.1.23", "first_release": "2005-11-08", "end_of_life": "2010-11-08", "latest_release_date": "2010-12-16", "manual_url": "/docs/8.1/index.html", "manual_slug": "8.1", "manual_pages": 730, "manual_loaded_at": "2026-09-27T00:10:47.078613", "source_revision": "", "release_count": 0, "entry_count": 0, "initial": null, "latest": null, "comparison_url": ""}, {"branch": "8.0", "url": "/wiki/versions/8.0/", "state": "eol", "state_label": "End of life", "tag": "", "build": "8.0.26", "first_release": "2005-01-19", "end_of_life": "2010-10-01", "latest_release_date": "2010-10-04", "manual_url": "/docs/8.0/index.html", "manual_slug": "8.0", "manual_pages": 664, "manual_loaded_at": "2026-09-27T00:10:47.078613", "source_revision": "", "release_count": 0, "entry_count": 0, "initial": null, "latest": null, "comparison_url": ""}, {"branch": "7.4", "url": "/wiki/versions/7.4/", "state": "eol", "state_label": "End of life", "tag": "", "build": "7.4.30", "first_release": "2003-11-17", "end_of_life": "2010-10-01", "latest_release_date": "2010-10-04", "manual_url": "/docs/7.4/index.html", "manual_slug": "7.4", "manual_pages": 644, "manual_loaded_at": "2026-09-27T00:10:47.078613", "source_revision": "", "release_count": 0, "entry_count": 0, "initial": null, "latest": null, "comparison_url": ""}, {"branch": "7.3", "url": "/wiki/versions/7.3/", "state": "eol", "state_label": "End of life", "tag": "", "build": "7.3.21", "first_release": "2002-11-27", "end_of_life": "2007-11-27", "latest_release_date": "2008-01-07", "manual_url": "/docs/7.3/index.html", "manual_slug": "7.3", "manual_pages": 616, "manual_loaded_at": "2026-09-27T00:10:47.078613", "source_revision": "", "release_count": 0, "entry_count": 0, "initial": null, "latest": null, "comparison_url": ""}, {"branch": "7.2", "url": "/wiki/versions/7.2/", "state": "eol", "state_label": "End of life", "tag": "", "build": "7.2.8", "first_release": "2002-02-04", "end_of_life": "2007-02-04", "latest_release_date": "2005-05-09", "manual_url": "/docs/7.2/index.html", "manual_slug": "7.2", "manual_pages": 552, "manual_loaded_at": "2026-09-27T00:10:47.078613", "source_revision": "", "release_count": 0, "entry_count": 0, "initial": null, "latest": null, "comparison_url": ""}, {"branch": "7.1", "url": "/wiki/versions/7.1/", "state": "eol", "state_label": "End of life", "tag": "", "build": "7.1.3", "first_release": "2001-04-13", "end_of_life": "2006-04-13", "latest_release_date": "2001-08-17", "manual_url": "/docs/7.1/postgres.html", "manual_slug": "7.1", "manual_pages": 488, "manual_loaded_at": "2026-09-27T00:10:47.078613", "source_revision": "", "release_count": 0, "entry_count": 0, "initial": null, "latest": null, "comparison_url": ""}, {"branch": "7.0", "url": "/wiki/versions/7.0/", "state": "eol", "state_label": "End of life", "tag": "", "build": "7.0.3", "first_release": "2000-05-08", "end_of_life": "2005-05-08", "latest_release_date": "2000-11-12", "manual_url": "/docs/7.0/postgres.htm", "manual_slug": "7.0", "manual_pages": 411, "manual_loaded_at": "2026-09-27T00:10:47.078613", "source_revision": "", "release_count": 0, "entry_count": 0, "initial": null, "latest": null, "comparison_url": ""}, {"branch": "6.5", "url": "/wiki/versions/6.5/", "state": "eol", "state_label": "End of life", "tag": "", "build": "6.5.3", "first_release": "1999-06-09", "end_of_life": "2004-06-09", "latest_release_date": "1999-11-04", "manual_url": "/docs/6.5/postgres.htm", "manual_slug": "6.5", "manual_pages": 370, "manual_loaded_at": "2026-09-27T00:10:47.078613", "source_revision": "", "release_count": 0, "entry_count": 0, "initial": null, "latest": null, "comparison_url": ""}, {"branch": "6.4", "url": "/wiki/versions/6.4/", "state": "eol", "state_label": "End of life", "tag": "", "build": "6.4.2", "first_release": "1998-10-30", "end_of_life": "2003-10-30", "latest_release_date": "1999-01-03", "manual_url": "/docs/6.4/postgres.htm", "manual_slug": "6.4", "manual_pages": 340, "manual_loaded_at": "2026-09-27T00:10:47.078613", "source_revision": "", "release_count": 0, "entry_count": 0, "initial": null, "latest": null, "comparison_url": ""}, {"branch": "6.3", "url": "/wiki/versions/6.3/", "state": "eol", "state_label": "End of life", "tag": "", "build": "6.3.2", "first_release": "1998-03-01", "end_of_life": "2003-03-01", "latest_release_date": "", "manual_url": "/docs/6.3/book01.htm", "manual_slug": "6.3", "manual_pages": 225, "manual_loaded_at": "2026-09-27T00:10:47.078613", "source_revision": "", "release_count": 0, "entry_count": 0, "initial": null, "latest": null, "comparison_url": ""}]}