{"format": 1, "version": {"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": ""}, "releases": [{"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}], "initial_entries": [{"id": "19.0-c33e9c850ed0c4c0", "cves": [], "html": "<p>Add server variable <a href=\"/docs/19/runtime-config-connection.html#GUC-PASSWORD-EXPIRATION-WARNING-THRESHOLD\"><code>password_expiration_warning_threshold</code></a> to warn about password expiration (Gilles Darold, Nathan Bossart) <a href=\"https://postgr.es/c/1d92e0c2c\">\u00a7</a></p>\n<p>The default warning period is seven days.</p>", "text": "Add server variable password_expiration_warning_threshold to warn about password expiration (Gilles Darold, Nathan Bossart) \u00a7 The default warning period is seven days.", "title": "Add server variable password_expiration_warning_threshold to warn about password expiration", "commits": ["1d92e0c2c"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "7c339ee9b358a11a561d28ca346ffcac404600694f6da2b380ae9bb7cd6af403", "section_path": ["Compatibility"], "commit_groups": [["1d92e0c2c"]], "identity_text": "Add server variable password_expiration_warning_threshold to warn about password expiration (Gilles Darold, Nathan Bossart) The default warning period is seven days.", "commit_aliases": ["1d92e0c2c"], "source_commits": ["1d92e0c2c"], "source_entry_id": "19.0/migration/001", "db_id": "0ee1d9c8286e1e1c3bca823c4ad8e489", "patch_ids": ["095ffa220dd9def37aacae10519edc44"], "statement_hash": "ed4b6567c72fb14f34d3ff078e46845e06ac97abc4729230f6ded8d82025c9a1", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=19.0#19.0-c33e9c850ed0c4c0", "migration": true}, {"id": "19.0-4ae2c09be676b418", "cves": [], "html": "<p>Issue a warning after successful MD5 password authentication (Nathan Bossart) <a href=\"https://postgr.es/c/bc60ee860\">\u00a7</a></p>\n<p>The warning can be disabled via server variable <a href=\"/docs/19/runtime-config-connection.html#GUC-MD5-PASSWORD-WARNINGS\"><code>md5_password_warnings</code></a>. MD5 passwords were marked as deprecated in <span>PostgreSQL</span> 18.</p>", "text": "Issue a warning after successful MD5 password authentication (Nathan Bossart) \u00a7 The warning can be disabled via server variable md5_password_warnings. MD5 passwords were marked as deprecated in PostgreSQL 18.", "title": "Issue a warning after successful MD5 password authentication", "commits": ["bc60ee860"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "60ee25c9ca51965424a96f772be18ed1f7e232d038ccecdab33d99841f5ca2ac", "section_path": ["Compatibility"], "commit_groups": [["bc60ee860"]], "identity_text": "Issue a warning after successful MD5 password authentication (Nathan Bossart) The warning can be disabled via server variable md5_password_warnings. MD5 passwords were marked as deprecated in PostgreSQL 18.", "commit_aliases": ["bc60ee860"], "source_commits": ["bc60ee860"], "source_entry_id": "19.0/migration/002", "db_id": "0df2f58e5c4562435db359e9744c01ef", "patch_ids": ["267b13bdefd84f24147ca4222f8da5df"], "statement_hash": "1c58a524004805cb3f88bc6eb135171feb7d551a6e610c6e4172bcb2cdd09ffd", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=19.0#19.0-4ae2c09be676b418", "migration": true}, {"id": "19.0-22c41cab584065b7", "cves": [], "html": "<p>Remove <acronym>RADIUS</acronym> support (Thomas Munro) <a href=\"https://postgr.es/c/a1643d40b\">\u00a7</a></p>\n<p><span>PostgreSQL</span> only supported <acronym>RADIUS</acronym> over <acronym>UDP</acronym>, which is unfixably insecure.</p>", "text": "Remove RADIUS support (Thomas Munro) \u00a7 PostgreSQL only supported RADIUS over UDP, which is unfixably insecure.", "title": "Remove RADIUS support", "commits": ["a1643d40b"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "b6868a5d55a4fbb9bf73a4ae19630c1778ac28754527bdd8b67b584d64f02e99", "section_path": ["Compatibility"], "commit_groups": [["a1643d40b"]], "identity_text": "Remove RADIUS support (Thomas Munro) PostgreSQL only supported RADIUS over UDP, which is unfixably insecure.", "commit_aliases": ["a1643d40b"], "source_commits": ["a1643d40b"], "source_entry_id": "19.0/migration/003", "db_id": "46f63ce5de5d054a9ff5ef111cb12f89", "patch_ids": ["fa7631c26a75fe98210f67a23a547046"], "statement_hash": "bb5a1ec62f0b8029c0c2d01824ad69a33b4621e98c08fea042bb2990d855978d", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=19.0#19.0-22c41cab584065b7", "migration": true}, {"id": "19.0-2c213911526432f1", "cves": [], "html": "<p>Force <a href=\"/docs/19/runtime-config-compatible.html#GUC-STANDARD-CONFORMING-STRINGS\"><code>standard_conforming_strings</code></a> to always be <code>on</code> in the database server (Tom Lane) <a href=\"https://postgr.es/c/457620845\">\u00a7</a></p>\n<p>Dumps created using pre-<span>PostgreSQL</span> 19 versions of <a href=\"/docs/19/app-pgdump.html\" title=\"pg_dump\"><span>pg_dump</span></a> or <a href=\"/docs/19/app-pg-dumpall.html\" title=\"pg_dumpall\"><span>pg_dumpall</span></a>, and using <code>standard_conforming_strings = off</code>, will not properly load into <span>PostgreSQL</span> 19 and later servers. Users should create dumps using <span>PostgreSQL</span> 19 or later versions of these applications, or use <code>standard_conforming_strings = on</code>.</p>\n<p>Client applications still support operations with servers having <code>standard_conforming_strings = off</code>, for compatibility with old servers. The server variable <code>escape_string_warning</code> has been removed as unnecessary.</p>", "text": "Force standard_conforming_strings to always be on in the database server (Tom Lane) \u00a7 Dumps created using pre-PostgreSQL 19 versions of pg_dump or pg_dumpall, and using standard_conforming_strings = off, will not properly load into PostgreSQL 19 and later servers. Users should create dumps using PostgreSQL 19 or later versions of these applications, or use standard_conforming_strings = on. Client applications still support operations with servers having standard_conforming_strings = off, for compatibility with old servers. The server variable escape_string_warning has been removed as unnecessary.", "title": "Force standard_conforming_strings to always be on in the database server", "commits": ["457620845"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "c4f9f9d32fefdf6df8ccf581a3a9d881e4c09bd24359b11641136a0fd1cb5db6", "section_path": ["Compatibility"], "commit_groups": [["457620845"]], "identity_text": "Force standard_conforming_strings to always be on in the database server (Tom Lane) Dumps created using pre-PostgreSQL 19 versions of pg_dump or pg_dumpall, and using standard_conforming_strings = off, will not properly load into PostgreSQL 19 and later servers. Users should create dumps using PostgreSQL 19 or later versions of these applications, or use standard_conforming_strings = on. Client applications still support operations with servers having standard_conforming_strings = off, for compatibility with old servers. The server variable escape_string_warning has been removed as unnecessary.", "commit_aliases": ["457620845"], "source_commits": ["457620845"], "source_entry_id": "19.0/migration/004", "db_id": "5f25dd2107e85b9059d37535d1950ec9", "patch_ids": ["f5987b8788598cff2c835051633022a4"], "statement_hash": "696303749de67371484ae06d069e6d9d01ae9401a71810e825dcc4efda391fa3", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=19.0#19.0-2c213911526432f1", "migration": true}, {"id": "19.0-07f0137a38635d0b", "cves": [], "html": "<p>Disallow carriage returns and line feeds in database, role, and tablespace names (Mahendra Singh Thalor) <a href=\"https://postgr.es/c/b380a56a3\">\u00a7</a></p>\n<p><a href=\"/docs/19/pgupgrade.html\" title=\"pg_upgrade\"><span>pg_upgrade</span></a> will also disallow upgrading of clusters that use such names. This was changed to avoid security problems.</p>", "text": "Disallow carriage returns and line feeds in database, role, and tablespace names (Mahendra Singh Thalor) \u00a7 pg_upgrade will also disallow upgrading of clusters that use such names. This was changed to avoid security problems.", "title": "Disallow carriage returns and line feeds in database, role, and tablespace names", "commits": ["b380a56a3"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "d9d6648afb875ea815d9ead2982f136ba6f41ae97c8305e53b58b65c7486235a", "section_path": ["Compatibility"], "commit_groups": [["b380a56a3"]], "identity_text": "Disallow carriage returns and line feeds in database, role, and tablespace names (Mahendra Singh Thalor) pg_upgrade will also disallow upgrading of clusters that use such names. This was changed to avoid security problems.", "commit_aliases": ["b380a56a3"], "source_commits": ["b380a56a3"], "source_entry_id": "19.0/migration/005", "db_id": "0f8efb4cff76fe54d45530b1262f678a", "patch_ids": ["4c82032b0e66552171db30560a84fcf6"], "statement_hash": "ad32dd3c8f6a910d242148086becb69efd82cd95622b540fa6f3ad7a4e16f429", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=19.0#19.0-07f0137a38635d0b", "migration": true}, {"id": "19.0-e5009c4b0e44386f", "cves": [], "html": "<p>Change the default index opclasses for <a href=\"/docs/19/datatype-net-types.html\" title=\"8.9.\u00a0Network Address Types\"><code>inet</code></a> and <a href=\"/docs/19/datatype-net-types.html\" title=\"8.9.\u00a0Network Address Types\"><code>cidr</code></a> data types from <a href=\"/docs/19/btree-gist.html\" title=\"F.8.\u00a0btree_gist \u2014 GiST operator classes with B-tree behavior\">btree_gist</a> to <a href=\"/docs/19/gist.html\" title=\"65.2.\u00a0GiST Indexes\">GiST</a> (Tom Lane) <a href=\"https://postgr.es/c/b3b0b4571\">\u00a7</a> <a href=\"https://postgr.es/c/b352d3d80\">\u00a7</a></p>\n<p>The <a href=\"/docs/19/btree-gist.html\" title=\"F.8.\u00a0btree_gist \u2014 GiST operator classes with B-tree behavior\">btree_gist</a> <code>inet</code>/<code>cidr</code> opclasses are broken because they can exclude rows that should be returned. <a href=\"/docs/19/pgupgrade.html\" title=\"pg_upgrade\"><span>pg_upgrade</span></a> will disallow upgrading of clusters with <a href=\"/docs/19/btree-gist.html\" title=\"F.8.\u00a0btree_gist \u2014 GiST operator classes with B-tree behavior\">btree_gist</a> <code>inet</code>/<code>cidr</code> indexes.</p>", "text": "Change the default index opclasses for inet and cidr data types from btree_gist to GiST (Tom Lane) \u00a7 \u00a7 The btree_gist inet/cidr opclasses are broken because they can exclude rows that should be returned. pg_upgrade will disallow upgrading of clusters with btree_gist inet/cidr indexes.", "title": "Change the default index opclasses for inet and cidr data types from btree_gist to GiST", "commits": ["b352d3d80", "b3b0b4571"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "bcad9b83405cd9f68ea551fb80f30d2d8da8c52009e65b68dabd4e687f1f8110", "section_path": ["Compatibility"], "commit_groups": [["b352d3d80"], ["b3b0b4571"]], "identity_text": "Change the default index opclasses for inet and cidr data types from btree-gist to GiST (Tom Lane) The btree-gist inet/cidr opclasses are broken because they can exclude rows that should be returned. pg_upgrade will disallow upgrading of clusters with btree-gist inet/cidr indexes.", "commit_aliases": ["b352d3d80", "b3b0b4571"], "source_commits": ["b352d3d80", "b3b0b4571"], "source_entry_id": "19.0/migration/006", "db_id": "bbd6b84aeeaf610165c06bae2b0299d6", "patch_ids": ["5f29df7f225f782b9684cc42760b7f96", "9c1098e770febac330c7cc44915cac6b"], "statement_hash": "1b48edee148244a08df9c9fc19d5499e8f3e93d313d216e6a12d4aea70e762bb", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=19.0#19.0-e5009c4b0e44386f", "migration": true}, {"id": "19.0-940009c2e7beae07", "cves": [], "html": "<p>Disallow system columns from being used in <a href=\"/docs/19/sql-copy.html\" title=\"COPY\"><code>COPY FROM ... WHERE</code></a> (Tom Lane) <a href=\"https://postgr.es/c/21c69dc73\">\u00a7</a></p>\n<p>The values of such columns were not well-defined.</p>", "text": "Disallow system columns from being used in COPY FROM ... WHERE (Tom Lane) \u00a7 The values of such columns were not well-defined.", "title": "Disallow system columns from being used in COPY FROM ... WHERE", "commits": ["21c69dc73"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "10e8dbc64b58cb2e6f2e54867daffca75598a704fdd023899c025327e183c54c", "section_path": ["Compatibility"], "commit_groups": [["21c69dc73"]], "identity_text": "Disallow system columns from being used in COPY FROM ... WHERE (Tom Lane) The values of such columns were not well-defined.", "commit_aliases": ["21c69dc73"], "source_commits": ["21c69dc73"], "source_entry_id": "19.0/migration/007", "db_id": "778475a1b837861f70094d5ceb2c5e00", "patch_ids": ["4b03e5cd2822d97a82583c446462a0fc"], "statement_hash": "579a9ff0903438067962eb326e682f0081809e9b7f29423e0d2af99e7d40eed6", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=19.0#19.0-940009c2e7beae07", "migration": true}, {"id": "19.0-28887c6175f1aca5", "cves": [], "html": "<p>Change a <a href=\"/docs/19/functions-json.html\" title=\"9.17.\u00a0JSON Functions and Operators\"><code>json_array()</code></a> call which returns no rows to return an empty <acronym>JSON</acronym> array (Richard Guo) <a href=\"https://postgr.es/c/8d829f5a0\">\u00a7</a></p>\n<p>This previously returned <code>NULL</code>.</p>", "text": "Change a json_array() call which returns no rows to return an empty JSON array (Richard Guo) \u00a7 This previously returned NULL.", "title": "Change a json_array() call which returns no rows to return an empty JSON array", "commits": ["8d829f5a0"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "c9026a8f7dc5b8e5ee222913b32528ec83fd880eb76ec6075ea29ef169bc6302", "section_path": ["Compatibility"], "commit_groups": [["8d829f5a0"]], "identity_text": "Change a json_array() call which returns no rows to return an empty JSON array (Richard Guo) This previously returned NULL.", "commit_aliases": ["8d829f5a0"], "source_commits": ["8d829f5a0"], "source_entry_id": "19.0/migration/008", "db_id": "211e837dc7f9cc71a096ad987b1144ac", "patch_ids": ["733a64f5cc78dfc189cdc0be1e7005a2"], "statement_hash": "91028f49e3f39916e3f88fd906dc82c048f83731d9e3eae83630f455228e1a60", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=19.0#19.0-28887c6175f1aca5", "migration": true}, {"id": "19.0-c8cd45a36d0a5393", "cves": [], "html": "<p>Cause transactions to pass their <code>READ ONLY</code> and <code>DEFERRABLE</code> status to <a href=\"/docs/19/postgres-fdw.html\" title=\"F.40.\u00a0postgres_fdw \u2014 access data stored in external PostgreSQL servers\">postgres_fdw</a> sessions (Etsuro Fujita) <a href=\"https://postgr.es/c/de28140de\">\u00a7</a></p>\n<p>This means <code>READ ONLY</code> transactions can no longer modify rows processed by <a href=\"/docs/19/postgres-fdw.html\" title=\"F.40.\u00a0postgres_fdw \u2014 access data stored in external PostgreSQL servers\">postgres_fdw</a> sessions.</p>", "text": "Cause transactions to pass their READ ONLY and DEFERRABLE status to postgres_fdw sessions (Etsuro Fujita) \u00a7 This means READ ONLY transactions can no longer modify rows processed by postgres_fdw sessions.", "title": "Cause transactions to pass their READ ONLY and DEFERRABLE status to postgres_fdw sessions", "commits": ["de28140de"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "aedfab70eafb85c9a3ebed4170e316ccb68c5d66f2c9d87e1d276b2877ac8094", "section_path": ["Compatibility"], "commit_groups": [["de28140de"]], "identity_text": "Cause transactions to pass their READ ONLY and DEFERRABLE status to postgres-fdw sessions (Etsuro Fujita) This means READ ONLY transactions can no longer modify rows processed by postgres-fdw sessions.", "commit_aliases": ["de28140de"], "source_commits": ["de28140de"], "source_entry_id": "19.0/migration/009", "db_id": "beedc195aa1ee31a93e09290f46c1a76", "patch_ids": ["efb80ef332b64868d899df491adab085"], "statement_hash": "a1cca77513b91f2bc10a1b05552526e2158b9c52c70de896bdbfddb837974d2b", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=19.0#19.0-c8cd45a36d0a5393", "migration": true}, {"id": "19.0-0f6fe2deb41d452f", "cves": [], "html": "<p>Change default of <a href=\"/docs/19/runtime-config-locks.html#GUC-MAX-LOCKS-PER-TRANSACTION\"><code>max_locks_per_transaction</code></a> from 64 to 128 (Heikki Linnakangas) <a href=\"https://postgr.es/c/79534f906\">\u00a7</a></p>\n<p>Lock size allocation has changed, so effectively settings must now be doubled to match their capacity in previous releases.</p>", "text": "Change default of max_locks_per_transaction from 64 to 128 (Heikki Linnakangas) \u00a7 Lock size allocation has changed, so effectively settings must now be doubled to match their capacity in previous releases.", "title": "Change default of max_locks_per_transaction from 64 to 128", "commits": ["79534f906"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "77109b01dcfb7956ff1d2d5d39ab548e9520cfe4164c1927463934a1cf43e715", "section_path": ["Compatibility"], "commit_groups": [["79534f906"]], "identity_text": "Change default of max_locks_per_transaction from 64 to 128 (Heikki Linnakangas) Lock size allocation has changed, so effectively settings must now be doubled to match their capacity in previous releases.", "commit_aliases": ["79534f906"], "source_commits": ["79534f906"], "source_entry_id": "19.0/migration/010", "db_id": "b49e1630d4751a0a3391d1c9cda2c73c", "patch_ids": ["39ca5de25df82eeade6fa15b148cba38"], "statement_hash": "b047f9fc149f0588327f77f9adf686e5da4c3cc852f9df57e36cee3c9a3ff845", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=19.0#19.0-0f6fe2deb41d452f", "migration": true}, {"id": "19.0-2d1995791bfba273", "cves": [], "html": "<p>Change <a href=\"/docs/19/jit.html\" title=\"Chapter\u00a030.\u00a0Just-in-Time Compilation (JIT)\"><acronym>JIT</acronym></a> to be disabled by default (Jelte Fennema-Nio) <a href=\"https://postgr.es/c/7f8c88c2b\">\u00a7</a></p>\n<p>Previously <acronym>JIT</acronym> was enabled by default, and activated based on optimizer costs, but this costing has been determined to be unreliable. This change requires sites that are doing many large analytical queries to manually enable <acronym>JIT</acronym>.</p>", "text": "Change JIT to be disabled by default (Jelte Fennema-Nio) \u00a7 Previously JIT was enabled by default, and activated based on optimizer costs, but this costing has been determined to be unreliable. This change requires sites that are doing many large analytical queries to manually enable JIT.", "title": "Change JIT to be disabled by default", "commits": ["7f8c88c2b"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "d5d7f48ee4c1effa36bf0427d8b159eb540c0335fb0e7d37c451e2f950663546", "section_path": ["Compatibility"], "commit_groups": [["7f8c88c2b"]], "identity_text": "Change JIT to be disabled by default (Jelte Fennema-Nio) Previously JIT was enabled by default, and activated based on optimizer costs, but this costing has been determined to be unreliable. This change requires sites that are doing many large analytical queries to manually enable JIT.", "commit_aliases": ["7f8c88c2b"], "source_commits": ["7f8c88c2b"], "source_entry_id": "19.0/migration/011", "db_id": "6b3e754eb033e05517d5e01c53cbb26f", "patch_ids": ["df6972f1b29556533e8f1d64ffe7c753"], "statement_hash": "532c84b6fa800a1060de0ff778f814cfac6bef59a00a8aff7b59d1e42bb1bef4", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=19.0#19.0-2d1995791bfba273", "migration": true}, {"id": "19.0-b1c1710fd414582c", "cves": [], "html": "<p>Rename column <code>sync_error_count</code> to <code>sync_table_error_count</code> in system view <a href=\"/docs/19/monitoring-stats.html#PG-STAT-SUBSCRIPTION-STATS\" title=\"Table\u00a027.20.\u00a0pg_stat_subscription_stats View\"><code>pg_stat_subscription_stats</code></a> (Vignesh C) <a href=\"https://postgr.es/c/3edaf29fa\">\u00a7</a></p>\n<p>This is necessary since sequence errors are now tracked separately.</p>", "text": "Rename column sync_error_count to sync_table_error_count in system view pg_stat_subscription_stats (Vignesh C) \u00a7 This is necessary since sequence errors are now tracked separately.", "title": "Rename column sync_error_count to sync_table_error_count in system view pg_stat_subscription_stats", "commits": ["3edaf29fa"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "a14e8b11a625b613af50951c94510fbe64a46f611fc59e78fcaaffe25b659690", "section_path": ["Compatibility"], "commit_groups": [["3edaf29fa"]], "identity_text": "Rename column sync_error_count to sync_table_error_count in system view pg_stat_subscription_stats (Vignesh C) This is necessary since sequence errors are now tracked separately.", "commit_aliases": ["3edaf29fa"], "source_commits": ["3edaf29fa"], "source_entry_id": "19.0/migration/012", "db_id": "70cd59be0b3b3c22c3c028193c91e416", "patch_ids": ["612943743e97964090c65bd7f4cdedca"], "statement_hash": "1f4f95c0813c6e77c441fd924e4b2ab8e496ff881eefbd3447d3f107e05fe57e", "relations": [{"rule": 2, "type": "related", "target": "9a6f7f73dea73507b7e7d161044aa58a", "evidence": {"same_day": false, "patch_ids": ["612943743e97964090c65bd7f4cdedca"]}}], "category_label": "Compatibility", "url": "/docs/compare/?release=19.0#19.0-b1c1710fd414582c", "migration": true}, {"id": "19.0-81577b68a3e9a3cd", "cves": [], "html": "<p>Rename wait event type <code>BUFFERPIN</code> to <code>BUFFER</code> (Andres Freund) <a href=\"https://postgr.es/c/6c5c393b7\">\u00a7</a></p>", "text": "Rename wait event type BUFFERPIN to BUFFER (Andres Freund) \u00a7", "title": "Rename wait event type BUFFERPIN to BUFFER", "commits": ["6c5c393b7"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "1c827752bc91870e249ffe8959c9bb2f54d7f1d069aaf5d2e31c31dd3bb5f640", "section_path": ["Compatibility"], "commit_groups": [["6c5c393b7"]], "identity_text": "Rename wait event type BUFFERPIN to BUFFER (Andres Freund)", "commit_aliases": ["6c5c393b7"], "source_commits": ["6c5c393b7"], "source_entry_id": "19.0/migration/013", "db_id": "1ecc37a4bc0681ac63229c9b83f896ff", "patch_ids": ["05a4d97cfbb6a11f234cd121c8a4175b"], "statement_hash": "f95959a5ae8abdf9d088444fdc699e05d3883f7bcc008adc16e100c5e8e5a2db", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=19.0#19.0-81577b68a3e9a3cd", "migration": true}, {"id": "19.0-02d55f924e33d8e5", "cves": [], "html": "<p>Change index access method handlers to use a static <a href=\"/docs/19/indexam.html\" title=\"Chapter\u00a063.\u00a0Index Access Method Interface Definition\"><code>IndexAmRoutines</code></a> structure, rather than dynamically allocated ones (Matthias van de Meent) <a href=\"https://postgr.es/c/bc6374cd7\">\u00a7</a></p>", "text": "Change index access method handlers to use a static IndexAmRoutines structure, rather than dynamically allocated ones (Matthias van de Meent) \u00a7", "title": "Change index access method handlers to use a static IndexAmRoutines structure, rather than dynamically allocated ones", "commits": ["bc6374cd7"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "8d57149ef038da9610e4d527d1b77c67a259a9a2d5db45bfe77b68c2ac0f956a", "section_path": ["Compatibility"], "commit_groups": [["bc6374cd7"]], "identity_text": "Change index access method handlers to use a static IndexAmRoutines structure, rather than dynamically allocated ones (Matthias van de Meent)", "commit_aliases": ["bc6374cd7"], "source_commits": ["bc6374cd7"], "source_entry_id": "19.0/migration/014", "db_id": "419bfd0eee41078235d947a0cb18b85a", "patch_ids": ["309ecd676dbc1e378df3e762b4e43d07"], "statement_hash": "77ac996dcd32cd0c913325b06fad5609fb2d0a07a577f342baba7263879bf0fc", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=19.0#19.0-02d55f924e33d8e5", "migration": true}, {"id": "19.0-6aed8df8f1048b04", "cves": [], "html": "<p>Remove optimizer hook get_relation_info_hook and add better-placed hook build_simple_rel_hook (Robert Haas) <a href=\"https://postgr.es/c/91f33a2ae\">\u00a7</a></p>", "text": "Remove optimizer hook get_relation_info_hook and add better-placed hook build_simple_rel_hook (Robert Haas) \u00a7", "title": "Remove optimizer hook get_relation_info_hook and add better-placed hook build_simple_rel_hook", "commits": ["91f33a2ae"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "a9ee2d58ff00b61b8ad6674b0481dbe65812e81f01e72a6177ac42169670f1b5", "section_path": ["Compatibility"], "commit_groups": [["91f33a2ae"]], "identity_text": "Remove optimizer hook get_relation_info_hook and add better-placed hook build_simple_rel_hook (Robert Haas)", "commit_aliases": ["91f33a2ae"], "source_commits": ["91f33a2ae"], "source_entry_id": "19.0/migration/015", "db_id": "9eb7c5f55e60c1774249ad77a6e3e680", "patch_ids": ["ad735bfab9018bd4e9455caa63620d0e"], "statement_hash": "1262304b32f806dbc40ddb3a8a7dbc07bd5c934aa44cbe10f9aae2da5a799e17", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=19.0#19.0-6aed8df8f1048b04", "migration": true}, {"id": "19.0-57a268be8495814f", "cves": [], "html": "<p>Change <a href=\"/docs/19/app-psql.html\" title=\"psql\"><span>psql</span></a>'s <code>\\crosstabview</code> command to honor the <code>\\pset null</code> setting (Chao Li) <a href=\"https://postgr.es/c/4df5fe383\">\u00a7</a></p>", "text": "Change psql's \\crosstabview command to honor the \\pset null setting (Chao Li) \u00a7", "title": "Change psql's \\crosstabview command to honor the \\pset null setting", "commits": ["4df5fe383"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "9be60c7c3f3e576d0ce8811dbb5c156484f00b4dbc81d97ca985d4a9208f2844", "section_path": ["Compatibility"], "commit_groups": [["4df5fe383"]], "identity_text": "Change psql's \\crosstabview command to honor the \\pset null setting (Chao Li)", "commit_aliases": ["4df5fe383"], "source_commits": ["4df5fe383"], "source_entry_id": "19.0/migration/016", "db_id": "24d706693cffbda588c92cb4158295d1", "patch_ids": ["48547778883b24941cb761a838f78799"], "statement_hash": "88e115335c8f352de42a90fea375b95f3f56eab41a01210d8134cd525b47789d", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=19.0#19.0-57a268be8495814f", "migration": true}, {"id": "19.0-b575f973d52cf40d", "cves": [], "html": "<p>Remove <code>MULE_INTERNAL</code> encoding (Thomas Munro) <a href=\"https://postgr.es/c/77645d44e\">\u00a7</a></p>\n<p>This encoding was complex and rarely used. Databases using it will need to be dumped and restored with a different encoding.</p>", "text": "Remove MULE_INTERNAL encoding (Thomas Munro) \u00a7 This encoding was complex and rarely used. Databases using it will need to be dumped and restored with a different encoding.", "title": "Remove MULE_INTERNAL encoding", "commits": ["77645d44e"], "section": "Compatibility", "category": "compatibility", "source_url": "/docs/release/19.0/#RELEASE-19-MIGRATION", "source_hash": "bbd1a72fdae94e463059def85d49a5f2971302c20887b0b7f5942e747617ecb3", "section_path": ["Compatibility"], "commit_groups": [["77645d44e"]], "identity_text": "Remove MULE_INTERNAL encoding (Thomas Munro) This encoding was complex and rarely used. Databases using it will need to be dumped and restored with a different encoding.", "commit_aliases": ["77645d44e"], "source_commits": ["77645d44e"], "source_entry_id": "19.0/migration/017", "db_id": "23f95991b047086faa8e13abfe46f775", "patch_ids": ["8d7fc34088b380faed06d973ad51df33"], "statement_hash": "0bcba35e6ec3fed48fcf47b2a0c8c06360235579f1c905251cbb0ae5c682c2e8", "relations": [], "category_label": "Compatibility", "url": "/docs/compare/?release=19.0#19.0-b575f973d52cf40d", "migration": true}, {"id": "19.0-cae3ff8856e5964e", "cves": [], "html": "<p>Allow <code>NOT IN</code> clauses to be converted to more efficient <code>ANTI JOIN</code>s when NULLs are not present (Richard Guo) <a href=\"https://postgr.es/c/383eb21eb\">\u00a7</a></p>", "text": "Allow NOT IN clauses to be converted to more efficient ANTI JOINs when NULLs are not present (Richard Guo) \u00a7", "title": "Allow NOT IN clauses to be converted to more efficient ANTI JOINs when NULLs are not present", "commits": ["383eb21eb"], "section": "Server / Optimizer", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "4c50ca5897e46247f8e4b6f59a28f8aa3ce02b3ee0834a0431a0a78515a3d073", "section_path": ["Server", "Optimizer"], "commit_groups": [["383eb21eb"]], "identity_text": "Allow NOT IN clauses to be converted to more efficient ANTI JOINs when NULLs are not present (Richard Guo)", "commit_aliases": ["383eb21eb"], "source_commits": ["383eb21eb"], "source_entry_id": "19.0/changes/001", "db_id": "39c117f3fa7adf79da47166f4825b1dc", "patch_ids": ["5afcd1265980a140ea7dd0e9cb066b15"], "statement_hash": "fb215706df436cf3276a0acf413da59db60cc02e3d1216b1d1d0b439382e7249", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-cae3ff8856e5964e", "migration": false}, {"id": "19.0-c1e58e42068ad38b", "cves": [], "html": "<p>Allow more <code>LEFT JOIN</code>s to be converted to <code>ANTI JOIN</code>s (Tender Wang, Richard Guo) <a href=\"https://postgr.es/c/cf74558fe\">\u00a7</a></p>", "text": "Allow more LEFT JOINs to be converted to ANTI JOINs (Tender Wang, Richard Guo) \u00a7", "title": "Allow more LEFT JOINs to be converted to ANTI JOINs", "commits": ["cf74558fe"], "section": "Server / Optimizer", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "7e327562d4a6b632797fe90482e8dc13f67f69aaa89cb9db338af40677140e00", "section_path": ["Server", "Optimizer"], "commit_groups": [["cf74558fe"]], "identity_text": "Allow more LEFT JOINs to be converted to ANTI JOINs (Tender Wang, Richard Guo)", "commit_aliases": ["cf74558fe"], "source_commits": ["cf74558fe"], "source_entry_id": "19.0/changes/002", "db_id": "b14ad51258f5cdaacbbfcc642a4e2e5a", "patch_ids": ["34be0ad8c51c6d6c8e622c145dc771f9"], "statement_hash": "40cd753f910f478e2dce62e7dba53068faa04cb06f20e30ecf2411ca8a5b0363", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-c1e58e42068ad38b", "migration": false}, {"id": "19.0-f76b60b8828a7d0b", "cves": [], "html": "<p>Allow use of Memoize for <code>ANTI JOIN</code>s with unique inner sides (Richard Guo) <a href=\"https://postgr.es/c/0da29e4cb\">\u00a7</a></p>", "text": "Allow use of Memoize for ANTI JOINs with unique inner sides (Richard Guo) \u00a7", "title": "Allow use of Memoize for ANTI JOINs with unique inner sides", "commits": ["0da29e4cb"], "section": "Server / Optimizer", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "bdb07863cf84925c4e542062653780456747d761f7832054ff2835a51e429405", "section_path": ["Server", "Optimizer"], "commit_groups": [["0da29e4cb"]], "identity_text": "Allow use of Memoize for ANTI JOINs with unique inner sides (Richard Guo)", "commit_aliases": ["0da29e4cb"], "source_commits": ["0da29e4cb"], "source_entry_id": "19.0/changes/003", "db_id": "0f0d884ae845f9038785e481172d1f4f", "patch_ids": ["8b76681fe126b848fe98cb7d5af237a6"], "statement_hash": "d1a634c1f6b4d823672618004f88435d00388c69514631952683becc4a53d7ea", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-f76b60b8828a7d0b", "migration": false}, {"id": "19.0-7147c16b9c60db5f", "cves": [], "html": "<p>Allow some aggregate processing to be performed before joins (Richard Guo, Antonin Houska) <a href=\"https://postgr.es/c/8e1185910\">\u00a7</a> <a href=\"https://postgr.es/c/bd94845e8\">\u00a7</a> <a href=\"https://postgr.es/c/3a08a2a8b\">\u00a7</a></p>\n<p>This can reduce the number of rows needed to be processed.</p>", "text": "Allow some aggregate processing to be performed before joins (Richard Guo, Antonin Houska) \u00a7 \u00a7 \u00a7 This can reduce the number of rows needed to be processed.", "title": "Allow some aggregate processing to be performed before joins", "commits": ["3a08a2a8b", "8e1185910", "bd94845e8"], "section": "Server / Optimizer", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "7f74d6348893d4c4907c7fdba9651e0097c05a2f55b4edd383a1c9577534d377", "section_path": ["Server", "Optimizer"], "commit_groups": [["3a08a2a8b"], ["8e1185910"], ["bd94845e8"]], "identity_text": "Allow some aggregate processing to be performed before joins (Richard Guo, Antonin Houska) This can reduce the number of rows needed to be processed.", "commit_aliases": ["3a08a2a8b", "8e1185910", "bd94845e8"], "source_commits": ["3a08a2a8b", "8e1185910", "bd94845e8"], "source_entry_id": "19.0/changes/004", "db_id": "2c9e35c599775907c3b3bdda01894b08", "patch_ids": ["5913f214801aba0a67487defef3e5b0d", "8291b2a60abb0fe5a064be000be5f8fa", "cffcdfa6b2dc4400ca76dfa397fae5ef"], "statement_hash": "ebcf53889c9089799193d955b5499ed5608d3ed9bebbf5f510a69c50c88d2a6a", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-7147c16b9c60db5f", "migration": false}, {"id": "19.0-409ecafc3fecde8d", "cves": [], "html": "<p>Improve hash join's handling of tuples with <code>NULL</code> join keys (Tom Lane) <a href=\"https://postgr.es/c/1811f1af9\">\u00a7</a></p>", "text": "Improve hash join's handling of tuples with NULL join keys (Tom Lane) \u00a7", "title": "Improve hash join's handling of tuples with NULL join keys", "commits": ["1811f1af9"], "section": "Server / Optimizer", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "ea2def5dda27297a9c9b9dc23f0a71bceb2c7afa4043ffe0486ecf5cdb577f91", "section_path": ["Server", "Optimizer"], "commit_groups": [["1811f1af9"]], "identity_text": "Improve hash join's handling of tuples with NULL join keys (Tom Lane)", "commit_aliases": ["1811f1af9"], "source_commits": ["1811f1af9"], "source_entry_id": "19.0/changes/005", "db_id": "f09575e09ca42ed766499dd663fde44f", "patch_ids": ["210e0aafe9768e27a805d2751403fe01"], "statement_hash": "4be393e01014eee5764cb829f8dfa6740a5ed45cd6dcfe1ec9bcde4508adf99a", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-409ecafc3fecde8d", "migration": false}, {"id": "19.0-a14b289d84d3f204", "cves": [], "html": "<p>Improve the planning of semijoins (Richard Guo) <a href=\"https://postgr.es/c/24225ad9a\">\u00a7</a></p>", "text": "Improve the planning of semijoins (Richard Guo) \u00a7", "title": "Improve the planning of semijoins", "commits": ["24225ad9a"], "section": "Server / Optimizer", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "75942474d30819e9e00598e0c7237ad5f11d5d761f5effe8cff1d0eeca807b75", "section_path": ["Server", "Optimizer"], "commit_groups": [["24225ad9a"]], "identity_text": "Improve the planning of semijoins (Richard Guo)", "commit_aliases": ["24225ad9a"], "source_commits": ["24225ad9a"], "source_entry_id": "19.0/changes/006", "db_id": "5e54b3a7512536e84f3ce0af31e9f570", "patch_ids": ["12f0b9df9adf791089766c7b6965b423"], "statement_hash": "3fd89272a005636d87d53bdef6753d0bc89ae0d9a98d441084003e15c79228f9", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-a14b289d84d3f204", "migration": false}, {"id": "19.0-58d3061275bdd469", "cves": [], "html": "<p>Allow Append and MergeAppend to consider explicit incremental sorts (Richard Guo) <a href=\"https://postgr.es/c/55a780e94\">\u00a7</a></p>", "text": "Allow Append and MergeAppend to consider explicit incremental sorts (Richard Guo) \u00a7", "title": "Allow Append and MergeAppend to consider explicit incremental sorts", "commits": ["55a780e94"], "section": "Server / Optimizer", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "168d85d328dd11f20f1143c8a296e6e58847c424d173b21a50778b8fd9926fc7", "section_path": ["Server", "Optimizer"], "commit_groups": [["55a780e94"]], "identity_text": "Allow Append and MergeAppend to consider explicit incremental sorts (Richard Guo)", "commit_aliases": ["55a780e94"], "source_commits": ["55a780e94"], "source_entry_id": "19.0/changes/007", "db_id": "6203b6154c3f44bfeba263b117e32150", "patch_ids": ["27e38922acefd323b2455933decbe319"], "statement_hash": "8157792aabe82a5852660e085153c9a6bf0beab886d8b8c2b2ede534649d2d3f", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-58d3061275bdd469", "migration": false}, {"id": "19.0-c2ab03320b40a102", "cves": [], "html": "<p>Convert <a href=\"/docs/19/functions-comparison.html#FUNCTIONS-COMPARISON-PRED-TABLE\" title=\"Table\u00a09.2.\u00a0Comparison Predicates\"><code>IS [NOT] DISTINCT FROM NULL</code></a> to <code>IS [NOT] NULL</code> during constant folding (Richard Guo) <a href=\"https://postgr.es/c/f41ab5157\">\u00a7</a></p>\n<p>The latter form is more easily optimized.</p>", "text": "Convert IS [NOT] DISTINCT FROM NULL to IS [NOT] NULL during constant folding (Richard Guo) \u00a7 The latter form is more easily optimized.", "title": "Convert IS [NOT] DISTINCT FROM NULL to IS [NOT] NULL during constant folding", "commits": ["f41ab5157"], "section": "Server / Optimizer", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "f8cee679d25843f381baa6003d11f6160d2534997063e623fea3e5946afc7e7e", "section_path": ["Server", "Optimizer"], "commit_groups": [["f41ab5157"]], "identity_text": "Convert IS [NOT] DISTINCT FROM NULL to IS [NOT] NULL during constant folding (Richard Guo) The latter form is more easily optimized.", "commit_aliases": ["f41ab5157"], "source_commits": ["f41ab5157"], "source_entry_id": "19.0/changes/008", "db_id": "5338907e026429e992a5d52baa60153c", "patch_ids": ["a2fb1e20430f831c885b369e3405d403"], "statement_hash": "584ad92a9292ff29cd0d6cbda4cca44bf3e68f1d8d60a18c5eed98840068e80e", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-c2ab03320b40a102", "migration": false}, {"id": "19.0-bb4485e8960db6ef", "cves": [], "html": "<p>Simplify <a href=\"/docs/19/functions-comparison.html#FUNCTIONS-COMPARISON-PRED-TABLE\" title=\"Table\u00a09.2.\u00a0Comparison Predicates\"><code>IS [NOT] DISTINCT FROM</code></a> to equality/inequality operators when inputs are proven non-nullable (Richard Guo) <a href=\"https://postgr.es/c/0a3796125\">\u00a7</a></p>", "text": "Simplify IS [NOT] DISTINCT FROM to equality/inequality operators when inputs are proven non-nullable (Richard Guo) \u00a7", "title": "Simplify IS [NOT] DISTINCT FROM to equality/inequality operators when inputs are proven non-nullable", "commits": ["0a3796125"], "section": "Server / Optimizer", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "f37bbc446a232ba86a7f726cccd2db4d1b24885ba64e8a8a9984d4b45ecc6793", "section_path": ["Server", "Optimizer"], "commit_groups": [["0a3796125"]], "identity_text": "Simplify IS [NOT] DISTINCT FROM to equality/inequality operators when inputs are proven non-nullable (Richard Guo)", "commit_aliases": ["0a3796125"], "source_commits": ["0a3796125"], "source_entry_id": "19.0/changes/009", "db_id": "11fc82a446b38332c14ca15e6502c3ba", "patch_ids": ["606b2febb5bf8d1ba041bc732eecd82c"], "statement_hash": "3ed3189a74dce28a3d35d0aeaf5af4e7c8c37ad2e2379cbe85ac4005bcb5a604", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-bb4485e8960db6ef", "migration": false}, {"id": "19.0-a95eb1ef6edbf5ee", "cves": [], "html": "<p>Perform earlier constant folding of <em><code>var</code></em> <code>IS [NOT] NULL</code> in the optimizer (Richard Guo) <a href=\"https://postgr.es/c/e2debb643\">\u00a7</a></p>\n<p>This allows for later optimizations.</p>", "text": "Perform earlier constant folding of var IS [NOT] NULL in the optimizer (Richard Guo) \u00a7 This allows for later optimizations.", "title": "Perform earlier constant folding of var IS [NOT] NULL in the optimizer", "commits": ["e2debb643"], "section": "Server / Optimizer", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "207dee13849180dc9608920be0724e490b3efe178b8488272a97eae878b1ec8d", "section_path": ["Server", "Optimizer"], "commit_groups": [["e2debb643"]], "identity_text": "Perform earlier constant folding of var IS [NOT] NULL in the optimizer (Richard Guo) This allows for later optimizations.", "commit_aliases": ["e2debb643"], "source_commits": ["e2debb643"], "source_entry_id": "19.0/changes/010", "db_id": "be54aea280d26ed11021e92f08c48471", "patch_ids": ["4da26000bced26e6b5a890ab16d061f3"], "statement_hash": "2effe9bc40747a1dedba1a62ebceecfe10a353e6c2d7defc920764e73507eb25", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-a95eb1ef6edbf5ee", "migration": false}, {"id": "19.0-9f8d11c5b213d88b", "cves": [], "html": "<p>Simplify <a href=\"/docs/19/functions-conditional.html#FUNCTIONS-COALESCE-NVL-IFNULL\" title=\"9.19.2.\u00a0COALESCE\"><code>COALESCE()</code></a> and <code>ROW(...) IS [NOT] NULL</code> to avoid evaluating unnecessary arguments (Richard Guo) <a href=\"https://postgr.es/c/10c4fe074\">\u00a7</a> <a href=\"https://postgr.es/c/cb7b7ec7a\">\u00a7</a></p>", "text": "Simplify COALESCE() and ROW(...) IS [NOT] NULL to avoid evaluating unnecessary arguments (Richard Guo) \u00a7 \u00a7", "title": "Simplify COALESCE() and ROW(...) IS [NOT] NULL to avoid evaluating unnecessary arguments", "commits": ["10c4fe074", "cb7b7ec7a"], "section": "Server / Optimizer", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "4034bfc0738904fac7539b3194238c49a2b12d2ec8df9a88b15e47b198438015", "section_path": ["Server", "Optimizer"], "commit_groups": [["10c4fe074"], ["cb7b7ec7a"]], "identity_text": "Simplify COALESCE() and ROW(...) IS [NOT] NULL to avoid evaluating unnecessary arguments (Richard Guo)", "commit_aliases": ["10c4fe074", "cb7b7ec7a"], "source_commits": ["10c4fe074", "cb7b7ec7a"], "source_entry_id": "19.0/changes/011", "db_id": "57a1b62101caf6d36235619e5c096df9", "patch_ids": ["68ba954bf29231cce3aacd7fdf28101a", "aa728d0817a40cedb9a213b1975b65ea"], "statement_hash": "016988a4c3afa7c989ab9e051214f974ecb92bcc3e8e5e6cf41a6588a8eb08c0", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-9f8d11c5b213d88b", "migration": false}, {"id": "19.0-70f141412f692aa7", "cves": [], "html": "<p>Simplify <code>IS [NOT] TRUE/FALSE/UNKNOWN</code> to plain boolean expressions when the input is proven non-nullable (Richard Guo) <a href=\"https://postgr.es/c/0aaf0de7f\">\u00a7</a></p>", "text": "Simplify IS [NOT] TRUE/FALSE/UNKNOWN to plain boolean expressions when the input is proven non-nullable (Richard Guo) \u00a7", "title": "Simplify IS [NOT] TRUE/FALSE/UNKNOWN to plain boolean expressions when the input is proven non-nullable", "commits": ["0aaf0de7f"], "section": "Server / Optimizer", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "47bcecc2c61cb3dedbf4fab001e38ad8110978c5f866a29caed2ef4a26df71ae", "section_path": ["Server", "Optimizer"], "commit_groups": [["0aaf0de7f"]], "identity_text": "Simplify IS [NOT] TRUE/FALSE/UNKNOWN to plain boolean expressions when the input is proven non-nullable (Richard Guo)", "commit_aliases": ["0aaf0de7f"], "source_commits": ["0aaf0de7f"], "source_entry_id": "19.0/changes/012", "db_id": "8e5dddf4bed1eba38b72b9274cbe91d0", "patch_ids": ["659aa13e96e6ca9a33f132d2e1273d81"], "statement_hash": "148a783b056c99a1f445e04204b2be1219aa7430b2007ed469c4d0f59279b2ff", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-70f141412f692aa7", "migration": false}, {"id": "19.0-ed34ada849bfd58f", "cves": [], "html": "<p>Speed up join selectivity computations for large optimizer statistics targets (Ilia Evdokimov, David Geier) <a href=\"https://postgr.es/c/057012b20\">\u00a7</a></p>", "text": "Speed up join selectivity computations for large optimizer statistics targets (Ilia Evdokimov, David Geier) \u00a7", "title": "Speed up join selectivity computations for large optimizer statistics targets", "commits": ["057012b20"], "section": "Server / Optimizer", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "cb5816282635fc4ea2cac9e1dada380cf14eabdd7423586d7e0ad26b80739f00", "section_path": ["Server", "Optimizer"], "commit_groups": [["057012b20"]], "identity_text": "Speed up join selectivity computations for large optimizer statistics targets (Ilia Evdokimov, David Geier)", "commit_aliases": ["057012b20"], "source_commits": ["057012b20"], "source_entry_id": "19.0/changes/013", "db_id": "731ee1882a965fff802edea15955fc65", "patch_ids": ["05810a8a82ed49e8d50c9a8d2307b017"], "statement_hash": "84bbb53ff5d48be13b424836a4e7afe094b25441ba268a7491cfa5b6fedd4a8d", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=19.0#19.0-ed34ada849bfd58f", "migration": false}, {"id": "19.0-16f503e76c291a93", "cves": [], "html": "<p>Enable proper optimizer statistics for functions returning boolean values (Tom Lane) <a href=\"https://postgr.es/c/1eccb9315\">\u00a7</a></p>", "text": "Enable proper optimizer statistics for functions returning boolean values (Tom Lane) \u00a7", "title": "Enable proper optimizer statistics for functions returning boolean values", "commits": ["1eccb9315"], "section": "Server / Optimizer", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "d5709e222aeb794df1186d7bfc6866f6314cc7c5d808163a04d35452e7811b6d", "section_path": ["Server", "Optimizer"], "commit_groups": [["1eccb9315"]], "identity_text": "Enable proper optimizer statistics for functions returning boolean values (Tom Lane)", "commit_aliases": ["1eccb9315"], "source_commits": ["1eccb9315"], "source_entry_id": "19.0/changes/014", "db_id": "7f294ecac4e9a1916f488d72859c484d", "patch_ids": ["f46850b6c4c52bf1a7b94d806ec57249"], "statement_hash": "5d42b8b729544c58d41a4a5d300b78e9cab3bfc0edd1d32a68ff9e0627aa4d24", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-16f503e76c291a93", "migration": false}, {"id": "19.0-5d809f3670da37c8", "cves": [], "html": "<p>Allow <a href=\"/docs/19/sql-createstatistics.html\" title=\"CREATE STATISTICS\">extended statistics</a> on virtual generated columns (Yugo Nagata) <a href=\"https://postgr.es/c/f7f4052a4\">\u00a7</a></p>", "text": "Allow extended statistics on virtual generated columns (Yugo Nagata) \u00a7", "title": "Allow extended statistics on virtual generated columns", "commits": ["f7f4052a4"], "section": "Server / Optimizer", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "5a074288a48869ff3a55a55fc43a11169ebfbd3cbd4eb589c0dcdf4fb7fb8318", "section_path": ["Server", "Optimizer"], "commit_groups": [["f7f4052a4"]], "identity_text": "Allow extended statistics on virtual generated columns (Yugo Nagata)", "commit_aliases": ["f7f4052a4"], "source_commits": ["f7f4052a4"], "source_entry_id": "19.0/changes/015", "db_id": "e521d4153b595d7b0a4bd84a7f2997b5", "patch_ids": ["5fd1f955452ebdb244af256249b84e03"], "statement_hash": "f08840b159de68e3dfb347da5a75c110c84bb48e47d4d2bfb5133dc5919c168f", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-5d809f3670da37c8", "migration": false}, {"id": "19.0-fe033cc3fb21ca77", "cves": [], "html": "<p>Allow function <a href=\"/docs/19/functions-admin.html#FUNCTIONS-ADMIN-STATSMOD\" title=\"Table\u00a09.106.\u00a0Database Object Statistics Manipulation Functions\"><code>pg_restore_extended_stats()</code></a> to restore optimizer extended statistics (Corey Huinker, Michael Paquier, Chao Li) <a href=\"https://postgr.es/c/0e80f3f88\">\u00a7</a> <a href=\"https://postgr.es/c/302879bd6\">\u00a7</a> <a href=\"https://postgr.es/c/efbebb4e8\">\u00a7</a> <a href=\"https://postgr.es/c/ba97bf9cb\">\u00a7</a></p>", "text": "Allow function pg_restore_extended_stats() to restore optimizer extended statistics (Corey Huinker, Michael Paquier, Chao Li) \u00a7 \u00a7 \u00a7 \u00a7", "title": "Allow function pg_restore_extended_stats() to restore optimizer extended statistics", "commits": ["0e80f3f88", "302879bd6", "ba97bf9cb", "efbebb4e8"], "section": "Server / Optimizer", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "5d2ac60236272372b0b5df8707f760cf8c56aab84ea246fc1425d1da72001ee7", "section_path": ["Server", "Optimizer"], "commit_groups": [["0e80f3f88"], ["302879bd6"], ["ba97bf9cb"], ["efbebb4e8"]], "identity_text": "Allow function pg_restore_extended_stats() to restore optimizer extended statistics (Corey Huinker, Michael Paquier, Chao Li)", "commit_aliases": ["0e80f3f88", "302879bd6", "ba97bf9cb", "efbebb4e8"], "source_commits": ["0e80f3f88", "302879bd6", "ba97bf9cb", "efbebb4e8"], "source_entry_id": "19.0/changes/016", "db_id": "754bc8e61d68041704cf28e4bd68d59d", "patch_ids": ["3aac308aad808487c34815e62a11c19b", "754bade21783a1ed8ea2e5108389871a", "7e47934dd8f6f597a4afdaa4cf023ea4", "f7d7d21b159965e6b044a55c33ef754e"], "statement_hash": "7d3748c033b3d8c7b34fb4d592a19202a21b00a59e5444ec84f5222e9c8449eb", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-fe033cc3fb21ca77", "migration": false}, {"id": "19.0-314f5112d9b62b16", "cves": [], "html": "<p>Add function <a href=\"/docs/19/functions-admin.html#FUNCTIONS-ADMIN-STATSMOD\" title=\"Table\u00a09.106.\u00a0Database Object Statistics Manipulation Functions\"><code>pg_clear_extended_stats()</code></a> to remove extended statistics (Corey Huinker, Michael Paquier) <a href=\"https://postgr.es/c/d756fa101\">\u00a7</a></p>", "text": "Add function pg_clear_extended_stats() to remove extended statistics (Corey Huinker, Michael Paquier) \u00a7", "title": "Add function pg_clear_extended_stats() to remove extended statistics", "commits": ["d756fa101"], "section": "Server / Optimizer", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "0143240d5d549c74da704a02c410b989b9d211c3681fdc39e588bb837092328c", "section_path": ["Server", "Optimizer"], "commit_groups": [["d756fa101"]], "identity_text": "Add function pg_clear_extended_stats() to remove extended statistics (Corey Huinker, Michael Paquier)", "commit_aliases": ["d756fa101"], "source_commits": ["d756fa101"], "source_entry_id": "19.0/changes/017", "db_id": "41aba3ef33942d6a6ed5d8ff2097d288", "patch_ids": ["f8f7de025b1acbacc549bb2543ec6f8d"], "statement_hash": "0f4709c90206a532b27695343de92dbdd6e33aee5d3e711aa3d4169d99bafa27", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-314f5112d9b62b16", "migration": false}, {"id": "19.0-bbbfca88a12850b3", "cves": [], "html": "<p>Adjust the optimizer to consider startup costs of partial paths (Robert Haas, Tomas Vondra) <a href=\"https://postgr.es/c/8300d3ad4\">\u00a7</a></p>", "text": "Adjust the optimizer to consider startup costs of partial paths (Robert Haas, Tomas Vondra) \u00a7", "title": "Adjust the optimizer to consider startup costs of partial paths", "commits": ["8300d3ad4"], "section": "Server / Optimizer", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "0979d34b0375be1003ebc03dfc24a3731e87f34dbd17f20d10a0e3cc2d409ab6", "section_path": ["Server", "Optimizer"], "commit_groups": [["8300d3ad4"]], "identity_text": "Adjust the optimizer to consider startup costs of partial paths (Robert Haas, Tomas Vondra)", "commit_aliases": ["8300d3ad4"], "source_commits": ["8300d3ad4"], "source_entry_id": "19.0/changes/018", "db_id": "4a027a3ab087d156be5cbf23dd9efa7b", "patch_ids": ["d2ad0209d8ff2c3963c69fa63df1925a"], "statement_hash": "a1a8105573366e0b72a29f2a7c0159bf1ad23b35b98c09a09132c8cc4a182cab", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-bbbfca88a12850b3", "migration": false}, {"id": "19.0-0aa6003a11abcb8c", "cves": [], "html": "<p>Allow negative values of <a href=\"/docs/19/catalog-pg-aggregate.html\" title=\"52.2.\u00a0pg_aggregate\"><code>pg_aggregate</code></a>.<a href=\"/docs/19/catalog-pg-aggregate.html\" title=\"52.2.\u00a0pg_aggregate\"><code>aggtransspace</code></a> to indicate unbounded memory usage (Richard Guo) <a href=\"https://postgr.es/c/185e30426\">\u00a7</a></p>\n<p>This information is used by the optimizer in planning memory usage.</p>", "text": "Allow negative values of pg_aggregate.aggtransspace to indicate unbounded memory usage (Richard Guo) \u00a7 This information is used by the optimizer in planning memory usage.", "title": "Allow negative values of pg_aggregate.aggtransspace to indicate unbounded memory usage", "commits": ["185e30426"], "section": "Server / Optimizer", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-OPTIMIZER", "source_hash": "0c15dfb6a376f19e29ce81b360b538607797f23fa3726050cf2a9f1133f94697", "section_path": ["Server", "Optimizer"], "commit_groups": [["185e30426"]], "identity_text": "Allow negative values of pg_aggregate.aggtransspace to indicate unbounded memory usage (Richard Guo) This information is used by the optimizer in planning memory usage.", "commit_aliases": ["185e30426"], "source_commits": ["185e30426"], "source_entry_id": "19.0/changes/019", "db_id": "f3d3c220e6026e0eeda7bd6d56f665e5", "patch_ids": ["5492488c92f30a827563d46acd1c15ba"], "statement_hash": "46976883fce19440f738354918a608956e7c2ca5a90ad03c654003c69efbe7ab", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-0aa6003a11abcb8c", "migration": false}, {"id": "19.0-f4deb8e78867d7a2", "cves": [], "html": "<p>Improve performance of foreign key constraint checks (Junwang Zhao, Amit Langote, Chao Li) <a href=\"https://postgr.es/c/2da86c1ef\">\u00a7</a> <a href=\"https://postgr.es/c/e484b0eea\">\u00a7</a></p>", "text": "Improve performance of foreign key constraint checks (Junwang Zhao, Amit Langote, Chao Li) \u00a7 \u00a7", "title": "Improve performance of foreign key constraint checks", "commits": ["2da86c1ef", "e484b0eea"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-PERFORMANCE", "source_hash": "4b1fa21f0dd9a6dc0c815850b02898286ac0f028cce3bf0a783f11095fbaf499", "section_path": ["Server", "General Performance"], "commit_groups": [["2da86c1ef"], ["e484b0eea"]], "identity_text": "Improve performance of foreign key constraint checks (Junwang Zhao, Amit Langote, Chao Li)", "commit_aliases": ["2da86c1ef", "e484b0eea"], "source_commits": ["2da86c1ef", "e484b0eea"], "source_entry_id": "19.0/changes/020", "db_id": "b1f9f55a512602ec9cd060bc2bc4371e", "patch_ids": ["00cf015ee47213a43181fb99b66a0771", "f4628d8586bd3ee7fa856a2b048ac468"], "statement_hash": "6721bd85527a6ca1358f80844fdc7e6fed859721c8241c12cec9e382035b32e7", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=19.0#19.0-f4deb8e78867d7a2", "migration": false}, {"id": "19.0-f5dcfc56f8dde08e", "cves": [], "html": "<p>Improve <a href=\"/docs/19/runtime-config-resource.html#GUC-IO-METHOD\">asynchronous I/O</a> read-ahead scheduling for large requests (Andres Freund) <a href=\"https://postgr.es/c/a9ee66881\">\u00a7</a> <a href=\"https://postgr.es/c/8ca147d58\">\u00a7</a> <a href=\"https://postgr.es/c/f63ca3379\">\u00a7</a></p>", "text": "Improve asynchronous I/O read-ahead scheduling for large requests (Andres Freund) \u00a7 \u00a7 \u00a7", "title": "Improve asynchronous I/O read-ahead scheduling for large requests", "commits": ["8ca147d58", "a9ee66881", "f63ca3379"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-PERFORMANCE", "source_hash": "387f271f171b23c761d21c0ad07898142ffcb42364770d68d60cc9d395101b9a", "section_path": ["Server", "General Performance"], "commit_groups": [["8ca147d58"], ["a9ee66881"], ["f63ca3379"]], "identity_text": "Improve asynchronous I/O read-ahead scheduling for large requests (Andres Freund)", "commit_aliases": ["8ca147d58", "a9ee66881", "f63ca3379"], "source_commits": ["8ca147d58", "a9ee66881", "f63ca3379"], "source_entry_id": "19.0/changes/021", "db_id": "b4d4b57a7f99bc9f44ad1314afae429b", "patch_ids": ["2072501f14b820f1bfe35915d8b30158", "e087def6571d3f6e5a061dae62c2fd7c", "fe9957778679eb91b18205b9537edb64"], "statement_hash": "6cfcc165edbe911269bd81960b16bec9e8a30a5f6f44ec922baa64b01873c0ed", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=19.0#19.0-f5dcfc56f8dde08e", "migration": false}, {"id": "19.0-3daf73605bfdc665", "cves": [], "html": "<p>Allow <a href=\"/docs/19/runtime-config-resource.html#GUC-IO-METHOD\"><code>io_method</code></a> method <code>worker</code> to automatically control needed background workers (Thomas Munro) <a href=\"https://postgr.es/c/d1c01b79d\">\u00a7</a></p>\n<p>The new server variables are <a href=\"/docs/19/runtime-config-resource.html#GUC-IO-MIN-WORKERS\"><code>io_min_workers</code></a>, <a href=\"/docs/19/runtime-config-resource.html#GUC-IO-MAX-WORKERS\"><code>io_max_workers</code></a>, <a href=\"/docs/19/runtime-config-resource.html#GUC-IO-WORKER-IDLE-TIMEOUT\"><code>io_worker_idle_timeout</code></a>, and <a href=\"/docs/19/runtime-config-resource.html#GUC-IO-WORKER-LAUNCH-INTERVAL\"><code>io_worker_launch_interval</code></a>.</p>", "text": "Allow io_method method worker to automatically control needed background workers (Thomas Munro) \u00a7 The new server variables are io_min_workers, io_max_workers, io_worker_idle_timeout, and io_worker_launch_interval.", "title": "Allow io_method method worker to automatically control needed background workers", "commits": ["d1c01b79d"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-PERFORMANCE", "source_hash": "0a9bfdeaf6759e077b7807eee93e8e6e53ab1c3ce3e64d1437c539d72ffb6f32", "section_path": ["Server", "General Performance"], "commit_groups": [["d1c01b79d"]], "identity_text": "Allow io_method method worker to automatically control needed background workers (Thomas Munro) The new server variables are io_min_workers, io_max_workers, io_worker_idle_timeout, and io_worker_launch_interval.", "commit_aliases": ["d1c01b79d"], "source_commits": ["d1c01b79d"], "source_entry_id": "19.0/changes/022", "db_id": "c5e682edb6d0e753a07c754d48223848", "patch_ids": ["a169ee84ddbd574a455365395bab1dc4"], "statement_hash": "33d169ec095b66285e4a86bc4f2e5ede3e62f3090896d379a607543d557df376", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=19.0#19.0-3daf73605bfdc665", "migration": false}, {"id": "19.0-6197dba6a48b75fc", "cves": [], "html": "<p>Allow query table scans to mark pages as all-visible in the <a href=\"/docs/19/routine-vacuuming.html#VACUUM-FOR-VISIBILITY-MAP\" title=\"24.1.4.\u00a0Updating the Visibility Map\">visibility map</a> (Melanie Plageman) <a href=\"https://postgr.es/c/b46e1e54d\">\u00a7</a></p>\n<p>Previously only <a href=\"/docs/19/sql-vacuum.html\" title=\"VACUUM\"><code>VACUUM</code></a> and <a href=\"/docs/19/sql-copy.html\" title=\"COPY\"><code>COPY ... FREEZE</code></a> could do this.</p>", "text": "Allow query table scans to mark pages as all-visible in the visibility map (Melanie Plageman) \u00a7 Previously only VACUUM and COPY ... FREEZE could do this.", "title": "Allow query table scans to mark pages as all-visible in the visibility map", "commits": ["b46e1e54d"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-PERFORMANCE", "source_hash": "9273e2b732c863827162b3d04de6d8f12e99b5109b31cd73b73178ec8a593a8b", "section_path": ["Server", "General Performance"], "commit_groups": [["b46e1e54d"]], "identity_text": "Allow query table scans to mark pages as all-visible in the visibility map (Melanie Plageman) Previously only VACUUM and COPY ... FREEZE could do this.", "commit_aliases": ["b46e1e54d"], "source_commits": ["b46e1e54d"], "source_entry_id": "19.0/changes/023", "db_id": "76b13e4c8fc284cc32adc9b29d10b363", "patch_ids": ["6a8f27889e6200ee92a2c2b96e0a1e62"], "statement_hash": "f7b21665ddffe4d56df3b384fa639c09064ad5d485c15b1843643bba88575b1e", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=19.0#19.0-6197dba6a48b75fc", "migration": false}, {"id": "19.0-f10578bc90c44bab", "cves": [], "html": "<p>Allow <a href=\"/docs/19/routine-vacuuming.html#AUTOVACUUM\" title=\"24.1.6.\u00a0The Autovacuum Daemon\">autovacuum</a> to use <a href=\"/docs/19/sql-createtable.html#RELOPTION-AUTOVACUUM-PARALLEL-WORKERS\"><code>parallel autovacuum workers</code></a> (Daniil Davydov) <a href=\"https://postgr.es/c/1ff3180ca\">\u00a7</a> <a href=\"https://postgr.es/c/2a3d2f9f6\">\u00a7</a></p>\n<p>The maximum number of workers is controlled by server variable <a href=\"/docs/19/runtime-config-vacuum.html#GUC-AUTOVACUUM-MAX-PARALLEL-WORKERS\"><code>autovacuum_max_parallel_workers</code></a> and per-table storage parameter <code>autovacuum_parallel_workers</code>.</p>", "text": "Allow autovacuum to use parallel autovacuum workers (Daniil Davydov) \u00a7 \u00a7 The maximum number of workers is controlled by server variable autovacuum_max_parallel_workers and per-table storage parameter autovacuum_parallel_workers.", "title": "Allow autovacuum to use parallel autovacuum workers", "commits": ["1ff3180ca", "2a3d2f9f6"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-PERFORMANCE", "source_hash": "08cc8f291983d4a09b820ae5af6e83c5ad36422f0a9e2ba758dcf31316c34dda", "section_path": ["Server", "General Performance"], "commit_groups": [["1ff3180ca"], ["2a3d2f9f6"]], "identity_text": "Allow autovacuum to use parallel autovacuum workers (Daniil Davydov) The maximum number of workers is controlled by server variable autovacuum_max_parallel_workers and per-table storage parameter autovacuum_parallel_workers.", "commit_aliases": ["1ff3180ca", "2a3d2f9f6"], "source_commits": ["1ff3180ca", "2a3d2f9f6"], "source_entry_id": "19.0/changes/024", "db_id": "0d35219da77f982b814f937702009bc4", "patch_ids": ["d00bb448799a8e00977cd00e9bf68cfc", "e7ff818d9fede0e1f491e0948f7bf314"], "statement_hash": "20d308cd68e961bab7637b3cd372a4abdc0257b9ce19be99488cf441e1c53b74", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=19.0#19.0-f10578bc90c44bab", "migration": false}, {"id": "19.0-f357a42bfa2189b5", "cves": [], "html": "<p>Allow <a href=\"/docs/19/datatype-oid.html\" title=\"8.19.\u00a0Object Identifier Types\"><code>TID</code></a> Range Scans to be parallelized (Cary Huang, David Rowley) <a href=\"https://postgr.es/c/0ca3b1697\">\u00a7</a></p>", "text": "Allow TID Range Scans to be parallelized (Cary Huang, David Rowley) \u00a7", "title": "Allow TID Range Scans to be parallelized", "commits": ["0ca3b1697"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-PERFORMANCE", "source_hash": "918f82ee3ea04c6a8849f3ae4cd14b49af4f4aa3425b9fef00f6a50f7543e71e", "section_path": ["Server", "General Performance"], "commit_groups": [["0ca3b1697"]], "identity_text": "Allow TID Range Scans to be parallelized (Cary Huang, David Rowley)", "commit_aliases": ["0ca3b1697"], "source_commits": ["0ca3b1697"], "source_entry_id": "19.0/changes/025", "db_id": "7c3eedfe04103a4350c1c749f105b5d3", "patch_ids": ["7d9994e362750e4bcfdb237f48d39ad0"], "statement_hash": "7152ed59ec02612602e221661cc104efc7e6a70fcc85a8a34f9ef6bac4c337da", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=19.0#19.0-f357a42bfa2189b5", "migration": false}, {"id": "19.0-a3b8e399138028f8", "cves": [], "html": "<p>Improve <a href=\"/docs/19/sql-copy.html\" title=\"COPY\"><code>COPY FROM</code></a> performance for text and <acronym>CSV</acronym> input using <acronym>SIMD</acronym> CPU instructions (Nazir Bilal Yavuz, Shinya Kato) <a href=\"https://postgr.es/c/e0a3a3fd5\">\u00a7</a></p>", "text": "Improve COPY FROM performance for text and CSV input using SIMD CPU instructions (Nazir Bilal Yavuz, Shinya Kato) \u00a7", "title": "Improve COPY FROM performance for text and CSV input using SIMD CPU instructions", "commits": ["e0a3a3fd5"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-PERFORMANCE", "source_hash": "861106e022a1790aa6ba93ac6e264c93e0c4aa74ee673d0a357f2c0b381127aa", "section_path": ["Server", "General Performance"], "commit_groups": [["e0a3a3fd5"]], "identity_text": "Improve COPY FROM performance for text and CSV input using SIMD CPU instructions (Nazir Bilal Yavuz, Shinya Kato)", "commit_aliases": ["e0a3a3fd5"], "source_commits": ["e0a3a3fd5"], "source_entry_id": "19.0/changes/026", "db_id": "45aec4e1ec99e2006c53a4a19c340728", "patch_ids": ["7c26e1aeba8ab71718c7ba308657e115"], "statement_hash": "7589e7db24f5e61f7e42a40c7d945736722c212686b401443969a3bdde2d3193", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=19.0#19.0-a3b8e399138028f8", "migration": false}, {"id": "19.0-31d0972f0fb0f165", "cves": [], "html": "<p>Improve <a href=\"/docs/19/sql-notify.html\" title=\"NOTIFY\"><code>NOTIFY</code></a> to only wake up backends that are listening to specified notifications (Joel Jacobson) <a href=\"https://postgr.es/c/282b1cde9\">\u00a7</a></p>\n<p>Previously most backends were woken by <a href=\"/docs/19/sql-notify.html\" title=\"NOTIFY\"><code>NOTIFY</code></a>.</p>", "text": "Improve NOTIFY to only wake up backends that are listening to specified notifications (Joel Jacobson) \u00a7 Previously most backends were woken by NOTIFY.", "title": "Improve NOTIFY to only wake up backends that are listening to specified notifications", "commits": ["282b1cde9"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-PERFORMANCE", "source_hash": "df21472d59db9cf0b82f24566eea1c581540d88262bf11418b8f74e2df43dd44", "section_path": ["Server", "General Performance"], "commit_groups": [["282b1cde9"]], "identity_text": "Improve NOTIFY to only wake up backends that are listening to specified notifications (Joel Jacobson) Previously most backends were woken by NOTIFY.", "commit_aliases": ["282b1cde9"], "source_commits": ["282b1cde9"], "source_entry_id": "19.0/changes/027", "db_id": "740592d064a218404af7794a0ce22ef9", "patch_ids": ["69192acbcef0c7cc8306f425878ffcd1"], "statement_hash": "5cdbf10e4e6459c3301ea94f1ad2a26d4796c69d3bc8738282269937d109dd09", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=19.0#19.0-31d0972f0fb0f165", "migration": false}, {"id": "19.0-a61e9ea9bcdc7e75", "cves": [], "html": "<p>Change <a href=\"/docs/19/runtime-config-wal.html#GUC-WAL-COMPRESSION\"><code>wal_compression</code></a> equals <code>on</code> to use the best WAL compression method available (wenhui qiu) <a href=\"https://postgr.es/c/5838806ce\">\u00a7</a></p>\n<p>Previously this always used <code>pglz</code>.</p>", "text": "Change wal_compression equals on to use the best WAL compression method available (wenhui qiu) \u00a7 Previously this always used pglz.", "title": "Change wal_compression equals on to use the best WAL compression method available", "commits": ["5838806ce"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-PERFORMANCE", "source_hash": "aba2eb3f517338208c84699f266e4df29998ad5c20b0b06c14325b7218dee683", "section_path": ["Server", "General Performance"], "commit_groups": [["5838806ce"]], "identity_text": "Change wal_compression equals on to use the best WAL compression method available (wenhui qiu) Previously this always used pglz.", "commit_aliases": ["5838806ce"], "source_commits": ["5838806ce"], "source_entry_id": "19.0/changes/028", "db_id": "e8b8f569bd0fb639a31dc56b11694455", "patch_ids": ["dd17331bcd4d09ddee436f175a988bf0"], "statement_hash": "6d23e95d15eb514f2c8a4fd77247d4901de44495448847d7876f3406ef645d9c", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=19.0#19.0-a61e9ea9bcdc7e75", "migration": false}, {"id": "19.0-bb67e187fab5af49", "cves": [], "html": "<p>Change the default <a href=\"/docs/19/storage-toast.html\" title=\"66.2.\u00a0TOAST\"><acronym>TOAST</acronym></a> compression method from <code>pglz</code> to the more efficient <code>lz4</code> (Euler Taveira) <a href=\"https://postgr.es/c/34dfca293\">\u00a7</a></p>\n<p>This is done by changing the default for server variable <a href=\"/docs/19/runtime-config-client.html#GUC-DEFAULT-TOAST-COMPRESSION\"><code>default_toast_compression</code></a>.</p>", "text": "Change the default TOAST compression method from pglz to the more efficient lz4 (Euler Taveira) \u00a7 This is done by changing the default for server variable default_toast_compression.", "title": "Change the default TOAST compression method from pglz to the more efficient lz4", "commits": ["34dfca293"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-PERFORMANCE", "source_hash": "b88ef72eb13e9528daa12b0f19ac0801bd11b0aed4868c5689f961b303474e4b", "section_path": ["Server", "General Performance"], "commit_groups": [["34dfca293"]], "identity_text": "Change the default TOAST compression method from pglz to the more efficient lz4 (Euler Taveira) This is done by changing the default for server variable default_toast_compression.", "commit_aliases": ["34dfca293"], "source_commits": ["34dfca293"], "source_entry_id": "19.0/changes/029", "db_id": "7be022908421d8c0bc76e88a85d61f08", "patch_ids": ["bc9f523e595d44cb2f23bf171fd8252e"], "statement_hash": "539bef1bd8c30f8c6cd23968ebfa3e8c836fd4a0051075fc361a1b1574e36f0b", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=19.0#19.0-bb67e187fab5af49", "migration": false}, {"id": "19.0-8b5aec6ddca85fe5", "cves": [], "html": "<p>Improve performance of internal row deformation (David Rowley) <a href=\"https://postgr.es/c/c456e3911\">\u00a7</a></p>", "text": "Improve performance of internal row deformation (David Rowley) \u00a7", "title": "Improve performance of internal row deformation", "commits": ["c456e3911"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-PERFORMANCE", "source_hash": "e33ca61d27b34df73309428a3e161efa1d449ee1044142dba15d9d538241ec2b", "section_path": ["Server", "General Performance"], "commit_groups": [["c456e3911"]], "identity_text": "Improve performance of internal row deformation (David Rowley)", "commit_aliases": ["c456e3911"], "source_commits": ["c456e3911"], "source_entry_id": "19.0/changes/030", "db_id": "2f44033f40c98ee6a912c206532f6743", "patch_ids": ["2fb9e9b84098734ad1a8377076eb1c47"], "statement_hash": "1e8e65e0cb1dcba0aa0c3976cbd782de234996f92acb56d493eea9b3f4ad1817", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=19.0#19.0-8b5aec6ddca85fe5", "migration": false}, {"id": "19.0-a6c33a3e54232374", "cves": [], "html": "<p>Improve performance of repeated <acronym>UTF-8</acronym> case-folding operations (Andreas Karlsson) <a href=\"https://postgr.es/c/c4ff35f10\">\u00a7</a></p>", "text": "Improve performance of repeated UTF-8 case-folding operations (Andreas Karlsson) \u00a7", "title": "Improve performance of repeated UTF-8 case-folding operations", "commits": ["c4ff35f10"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-PERFORMANCE", "source_hash": "db8fbfa4cae3f4ce9ea41e2d7646f765107a8c90c00b50a26b5ab10d56937494", "section_path": ["Server", "General Performance"], "commit_groups": [["c4ff35f10"]], "identity_text": "Improve performance of repeated UTF-8 case-folding operations (Andreas Karlsson)", "commit_aliases": ["c4ff35f10"], "source_commits": ["c4ff35f10"], "source_entry_id": "19.0/changes/031", "db_id": "1910f331f0c069a5c4fed4524f4347c2", "patch_ids": ["ae87a7eb7068ebcf4d1d2b57fc639c7c"], "statement_hash": "9e3af8a44d0dedeb1741e935ea02b4dcc4de7cf406fe2bfb5e5b1435a115b5e0", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=19.0#19.0-a6c33a3e54232374", "migration": false}, {"id": "19.0-55e8599ec6e16a5d", "cves": [], "html": "<p>Improve performance of hash index bulk-deletion and <a href=\"/docs/19/gin.html\" title=\"65.4.\u00a0GIN Indexes\"><code>GIN</code></a> index vacuuming using streaming reads (Xuneng Zhou) <a href=\"https://postgr.es/c/bfa3c4f10\">\u00a7</a> <a href=\"https://postgr.es/c/6c228755a\">\u00a7</a></p>", "text": "Improve performance of hash index bulk-deletion and GIN index vacuuming using streaming reads (Xuneng Zhou) \u00a7 \u00a7", "title": "Improve performance of hash index bulk-deletion and GIN index vacuuming using streaming reads", "commits": ["6c228755a", "bfa3c4f10"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-PERFORMANCE", "source_hash": "22dc347e00791c8cd097d440c9a650b0d9254cd0cdb4cd2305424237995540dd", "section_path": ["Server", "General Performance"], "commit_groups": [["6c228755a"], ["bfa3c4f10"]], "identity_text": "Improve performance of hash index bulk-deletion and GIN index vacuuming using streaming reads (Xuneng Zhou)", "commit_aliases": ["6c228755a", "bfa3c4f10"], "source_commits": ["6c228755a", "bfa3c4f10"], "source_entry_id": "19.0/changes/032", "db_id": "1ed1f0b5b015c26ff52c733bbcedbaa2", "patch_ids": ["84df054e8c1e0c6d9cb21616a9603f21", "9bbf9f028b97b0ec01a849288c885031"], "statement_hash": "8739a01f6a76fc5153326e7601d455c0e78e7547b96bd1f198775b7b537f56f3", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=19.0#19.0-55e8599ec6e16a5d", "migration": false}, {"id": "19.0-5906d443d6c17d19", "cves": [], "html": "<p>Improve sort performance using radix sort (John Naylor) <a href=\"https://postgr.es/c/ef3c3cf6d\">\u00a7</a></p>", "text": "Improve sort performance using radix sort (John Naylor) \u00a7", "title": "Improve sort performance using radix sort", "commits": ["ef3c3cf6d"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-PERFORMANCE", "source_hash": "053bf7d1a7a9e0349a991795e9476aaf1a1d59d2c0987e3bd5b973099c87cc5a", "section_path": ["Server", "General Performance"], "commit_groups": [["ef3c3cf6d"]], "identity_text": "Improve sort performance using radix sort (John Naylor)", "commit_aliases": ["ef3c3cf6d"], "source_commits": ["ef3c3cf6d"], "source_entry_id": "19.0/changes/033", "db_id": "e92f77f792175055754151b811c7e66f", "patch_ids": ["e549bc058c224184a36dddee5ed0274a"], "statement_hash": "1e58055dc676b28011576896b1a0c5617750d18c1bc9d507b6607e36ed2e726f", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=19.0#19.0-5906d443d6c17d19", "migration": false}, {"id": "19.0-9da3dd429f12c680", "cves": [], "html": "<p>Improve timing performance measurements (Lukas Fittl, Andres Freund, David Geier) <a href=\"https://postgr.es/c/294520c44\">\u00a7</a> <a href=\"https://postgr.es/c/16fca4825\">\u00a7</a></p>\n<p>This benefits <a href=\"/docs/19/sql-explain.html\" title=\"EXPLAIN\"><code>EXPLAIN (ANALYZE, TIMING)</code></a> and <a href=\"/docs/19/pgtesttiming.html\" title=\"pg_test_timing\"><span>pg_test_timing</span></a>, and is controlled via server variable <a href=\"/docs/19/runtime-config-resource.html#GUC-TIMING-CLOCK-SOURCE\"><code>timing_clock_source</code></a>.</p>", "text": "Improve timing performance measurements (Lukas Fittl, Andres Freund, David Geier) \u00a7 \u00a7 This benefits EXPLAIN (ANALYZE, TIMING) and pg_test_timing, and is controlled via server variable timing_clock_source.", "title": "Improve timing performance measurements", "commits": ["16fca4825", "294520c44"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-PERFORMANCE", "source_hash": "e26c03be8a2498ef24139bd777cd064eaf8931a86634dac1da1c142a30e3de04", "section_path": ["Server", "General Performance"], "commit_groups": [["16fca4825"], ["294520c44"]], "identity_text": "Improve timing performance measurements (Lukas Fittl, Andres Freund, David Geier) This benefits EXPLAIN (ANALYZE, TIMING) and pg_test_timing, and is controlled via server variable timing_clock_source.", "commit_aliases": ["16fca4825", "294520c44"], "source_commits": ["16fca4825", "294520c44"], "source_entry_id": "19.0/changes/034", "db_id": "a83a0fc0f22b72a243cc7f01e5ad26bd", "patch_ids": ["044cc323577cc5c4ab019ae421fcef93", "17be2bf9f9491bba9792f2204daac4e2"], "statement_hash": "7111ea49b63b8a127f7b829866f597d67366f4dac2b861092e418abd1b5eacca", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=19.0#19.0-9da3dd429f12c680", "migration": false}, {"id": "19.0-952b0c0ee40af353", "cves": [], "html": "<p>Optimize <a href=\"/docs/19/plpgsql.html\" title=\"Chapter\u00a041.\u00a0PL/pgSQL \u2014 SQL Procedural Language\"><span>plpgsql</span></a> syntax <code>SELECT simple-expression INTO</code> <em><code>var</code></em> (Tom Lane) <a href=\"https://postgr.es/c/ce8d5fe0e\">\u00a7</a></p>", "text": "Optimize plpgsql syntax SELECT simple-expression INTO var (Tom Lane) \u00a7", "title": "Optimize plpgsql syntax SELECT simple-expression INTO var", "commits": ["ce8d5fe0e"], "section": "Server / General Performance", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-PERFORMANCE", "source_hash": "a7328fdab461c4a7f5765f22692be28bd8444c4ebc98090a9006fa9fcdfe017a", "section_path": ["Server", "General Performance"], "commit_groups": [["ce8d5fe0e"]], "identity_text": "Optimize plpgsql syntax SELECT simple-expression INTO var (Tom Lane)", "commit_aliases": ["ce8d5fe0e"], "source_commits": ["ce8d5fe0e"], "source_entry_id": "19.0/changes/035", "db_id": "4d225e8d71194b0baf4576a57c89ab79", "patch_ids": ["cd90e593838a9a8b99f37f022aa98785"], "statement_hash": "9a10d3f3b495e42819480723274145cddba7d6c1c40840d9c022fd9f3e77a500", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=19.0#19.0-952b0c0ee40af353", "migration": false}, {"id": "19.0-42392d1ada6cf53a", "cves": [], "html": "<p>Add system view <a href=\"/docs/19/monitoring-stats.html#PG-STAT-LOCK-VIEW\" title=\"Table\u00a027.25.\u00a0pg_stat_lock View\"><code>pg_stat_lock</code></a> and function <a href=\"/docs/19/monitoring-stats.html#MONITORING-PG-STAT-LOCK-VIEW\" title=\"27.2.15.\u00a0pg_stat_lock\"><code>pg_stat_get_lock()</code></a> to report per-lock-type statistics (Bertrand Drouvot) <a href=\"https://postgr.es/c/4019f725f\">\u00a7</a></p>", "text": "Add system view pg_stat_lock and function pg_stat_get_lock() to report per-lock-type statistics (Bertrand Drouvot) \u00a7", "title": "Add system view pg_stat_lock and function pg_stat_get_lock() to report per-lock-type statistics", "commits": ["4019f725f"], "section": "Server / System Views", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "37efdb27ab007ade80935ccaea7356ddd09826bbd3ce38aa55146629a022e581", "section_path": ["Server", "System Views"], "commit_groups": [["4019f725f"]], "identity_text": "Add system view pg_stat_lock and function pg_stat_get_lock() to report per-lock-type statistics (Bertrand Drouvot)", "commit_aliases": ["4019f725f"], "source_commits": ["4019f725f"], "source_entry_id": "19.0/changes/036", "db_id": "cbe2559482ddfa2aac4eadad6b946745", "patch_ids": ["03976a5a4c07338afa4fc0ae987faf36"], "statement_hash": "4c2f5fb37b196485646d5b56fe524181d9b5d5a77b18be93c2eb7d8d9d2a7621", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-42392d1ada6cf53a", "migration": false}, {"id": "19.0-992924a5a97f0da6", "cves": [], "html": "<p>Add system view <a href=\"/docs/19/monitoring-stats.html#PG-STAT-RECOVERY-VIEW\" title=\"Table\u00a027.17.\u00a0pg_stat_recovery View\"><code>pg_stat_recovery</code></a> to report recovery status (Xuneng Zhou, Shinya Kato) <a href=\"https://postgr.es/c/01d485b14\">\u00a7</a> <a href=\"https://postgr.es/c/2d4ead6f4\">\u00a7</a></p>", "text": "Add system view pg_stat_recovery to report recovery status (Xuneng Zhou, Shinya Kato) \u00a7 \u00a7", "title": "Add system view pg_stat_recovery to report recovery status", "commits": ["01d485b14", "2d4ead6f4"], "section": "Server / System Views", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "37d67636bdd05f427f9dd03cdff499a490caff9af499fac2e73b3342b6bdebf2", "section_path": ["Server", "System Views"], "commit_groups": [["01d485b14"], ["2d4ead6f4"]], "identity_text": "Add system view pg_stat_recovery to report recovery status (Xuneng Zhou, Shinya Kato)", "commit_aliases": ["01d485b14", "2d4ead6f4"], "source_commits": ["01d485b14", "2d4ead6f4"], "source_entry_id": "19.0/changes/037", "db_id": "c3ccf79bde29fe3f2a6585993778288e", "patch_ids": ["6c47e71ee584566e1cdb6e6915ba46e7", "8de33246b266e818b5e8222fb7036aac"], "statement_hash": "a312179476848e405d3eec1ec3f1b961060cdb77b82ace73eadf06d15dd2704a", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-992924a5a97f0da6", "migration": false}, {"id": "19.0-6cbc970c6331b0ae", "cves": [], "html": "<p>Add system view <a href=\"/docs/19/monitoring-stats.html#PG-STAT-AUTOVACUUM-SCORES-VIEW\" title=\"Table\u00a027.32.\u00a0pg_stat_autovacuum_scores View\"><code>pg_stat_autovacuum_scores</code></a> to report per-table <a href=\"/docs/19/routine-vacuuming.html#AUTOVACUUM\" title=\"24.1.6.\u00a0The Autovacuum Daemon\">autovacuum</a> details (Sami Imseih) <a href=\"https://postgr.es/c/87f61f0c8\">\u00a7</a></p>", "text": "Add system view pg_stat_autovacuum_scores to report per-table autovacuum details (Sami Imseih) \u00a7", "title": "Add system view pg_stat_autovacuum_scores to report per-table autovacuum details", "commits": ["87f61f0c8"], "section": "Server / System Views", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "a678ad181bdebb8c940d335eebc166e6c276977bd45c033617fa8b96195b825e", "section_path": ["Server", "System Views"], "commit_groups": [["87f61f0c8"]], "identity_text": "Add system view pg_stat_autovacuum_scores to report per-table autovacuum details (Sami Imseih)", "commit_aliases": ["87f61f0c8"], "source_commits": ["87f61f0c8"], "source_entry_id": "19.0/changes/038", "db_id": "d276cd666e065e08277d26a8fb7a03c9", "patch_ids": ["d450bec36782c81f2954fd59737e1b76"], "statement_hash": "5b2fafd5b31336ec04a99dd9300d4f02447b330a666d12cdde0d0ab82cda8b4f", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-6cbc970c6331b0ae", "migration": false}, {"id": "19.0-5005b627618cc624", "cves": [], "html": "<p>Add system view <a href=\"/docs/19/view-pg-dsm-registry-allocations.html\" title=\"53.8.\u00a0pg_dsm_registry_allocations\"><code>pg_dsm_registry_allocations</code></a> to report <a href=\"/docs/19/runtime-config-resource.html#GUC-DYNAMIC-SHARED-MEMORY-TYPE\">dynamic shared memory</a> details (Florents Tselai, Nathan Bossart) <a href=\"https://postgr.es/c/167ed8082\">\u00a7</a> <a href=\"https://postgr.es/c/f894acb24\">\u00a7</a></p>", "text": "Add system view pg_dsm_registry_allocations to report dynamic shared memory details (Florents Tselai, Nathan Bossart) \u00a7 \u00a7", "title": "Add system view pg_dsm_registry_allocations to report dynamic shared memory details", "commits": ["167ed8082", "f894acb24"], "section": "Server / System Views", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "743de4c0c002fc4d25f4eef8f59d8c0468cf8ba628bef172a5ab979be42b2437", "section_path": ["Server", "System Views"], "commit_groups": [["167ed8082"], ["f894acb24"]], "identity_text": "Add system view pg_dsm_registry_allocations to report dynamic shared memory details (Florents Tselai, Nathan Bossart)", "commit_aliases": ["167ed8082", "f894acb24"], "source_commits": ["167ed8082", "f894acb24"], "source_entry_id": "19.0/changes/039", "db_id": "8d5c14fd4c3bc12fb519c4510b35f42c", "patch_ids": ["060c65df4ae439e5472616eec5529041", "c4785fc6a14fe381b6b90b2cef4ee762"], "statement_hash": "119d2154117d747839a9b58b3105a16e1269592a95c0bc1c2fdbe60b8de77eec", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-5005b627618cc624", "migration": false}, {"id": "19.0-5ca5ffbbb01b11c6", "cves": [], "html": "<p>Add vacuum initiation details to system view <a href=\"/docs/19/progress-reporting.html#PG-STAT-PROGRESS-VACUUM-VIEW\" title=\"Table\u00a027.50.\u00a0pg_stat_progress_vacuum View\"><code>pg_stat_progress_vacuum</code></a> (Shinya Kato) <a href=\"https://postgr.es/c/0d7895206\">\u00a7</a></p>\n<p>The new <code>started_by</code> column reports the initiator of the vacuum, and <code>mode</code> indicates its aggressiveness.</p>", "text": "Add vacuum initiation details to system view pg_stat_progress_vacuum (Shinya Kato) \u00a7 The new started_by column reports the initiator of the vacuum, and mode indicates its aggressiveness.", "title": "Add vacuum initiation details to system view pg_stat_progress_vacuum", "commits": ["0d7895206"], "section": "Server / System Views", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "08b41e29b56616a89d15fdda018887ee63aa2468db1b971948c92c2797fcf67b", "section_path": ["Server", "System Views"], "commit_groups": [["0d7895206"]], "identity_text": "Add vacuum initiation details to system view pg_stat_progress_vacuum (Shinya Kato) The new started_by column reports the initiator of the vacuum, and mode indicates its aggressiveness.", "commit_aliases": ["0d7895206"], "source_commits": ["0d7895206"], "source_entry_id": "19.0/changes/040", "db_id": "597e42cd38d0142a7294cfc00b0ea553", "patch_ids": ["4ceb582980f8563371f6a0af79a43561"], "statement_hash": "0c2fe2ec3463ea493c65bc087b8c40e071a68217606d0ae0ad7660a5d3ee1c2b", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-5ca5ffbbb01b11c6", "migration": false}, {"id": "19.0-082da441e0af9e14", "cves": [], "html": "<p>Add analyze initiation details to system view <a href=\"/docs/19/progress-reporting.html#PG-STAT-PROGRESS-ANALYZE-VIEW\" title=\"Table\u00a027.41.\u00a0pg_stat_progress_analyze View\"><code>pg_stat_progress_analyze</code></a> (Shinya Kato) <a href=\"https://postgr.es/c/ab40db385\">\u00a7</a></p>\n<p>The new <code>started_by</code> column reports the initiator of the analyze.</p>", "text": "Add analyze initiation details to system view pg_stat_progress_analyze (Shinya Kato) \u00a7 The new started_by column reports the initiator of the analyze.", "title": "Add analyze initiation details to system view pg_stat_progress_analyze", "commits": ["ab40db385"], "section": "Server / System Views", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "295f6c0e94da76415499091ec783deb623ba17d901e9405b783f275b58078e68", "section_path": ["Server", "System Views"], "commit_groups": [["ab40db385"]], "identity_text": "Add analyze initiation details to system view pg_stat_progress_analyze (Shinya Kato) The new started_by column reports the initiator of the analyze.", "commit_aliases": ["ab40db385"], "source_commits": ["ab40db385"], "source_entry_id": "19.0/changes/041", "db_id": "83371b692e03bed12c01afb91f634c59", "patch_ids": ["85a304775ef09a3db732c65c90dbb93c"], "statement_hash": "0ae5046ad3625b53619771311a85697633bcb03d86d8b3422e09717bd8d2639d", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-082da441e0af9e14", "migration": false}, {"id": "19.0-d6f07de0a9ba81d4", "cves": [], "html": "<p>Add <code>mem_exceeded_count</code> column to system view <a href=\"/docs/19/monitoring-stats.html#PG-STAT-REPLICATION-SLOTS-VIEW\" title=\"Table\u00a027.15.\u00a0pg_stat_replication_slots View\"><code>pg_stat_replication_slots</code></a> (Bertrand Drouvot) <a href=\"https://postgr.es/c/d3b6183dd\">\u00a7</a></p>\n<p>This reports the number of times that <a href=\"/docs/19/runtime-config-resource.html#GUC-LOGICAL-DECODING-WORK-MEM\"><code>logical_decoding_work_mem</code></a> was exceeded.</p>", "text": "Add mem_exceeded_count column to system view pg_stat_replication_slots (Bertrand Drouvot) \u00a7 This reports the number of times that logical_decoding_work_mem was exceeded.", "title": "Add mem_exceeded_count column to system view pg_stat_replication_slots", "commits": ["d3b6183dd"], "section": "Server / System Views", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "cd6ff3d1ae5cce3e471706a1f8c90ba383913fb149a5da203542c8a21605535b", "section_path": ["Server", "System Views"], "commit_groups": [["d3b6183dd"]], "identity_text": "Add mem_exceeded_count column to system view pg_stat_replication_slots (Bertrand Drouvot) This reports the number of times that logical_decoding_work_mem was exceeded.", "commit_aliases": ["d3b6183dd"], "source_commits": ["d3b6183dd"], "source_entry_id": "19.0/changes/042", "db_id": "a948b3c31c4bf7a7079ca074363c24ec", "patch_ids": ["bab99a2ad0f86c4e3fe094c15a2628d6"], "statement_hash": "95592ae4253188ff868760c27a10b1d1a8699d3fb22bb5ab2e0b3d025ab1435f", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-d6f07de0a9ba81d4", "migration": false}, {"id": "19.0-ff9d450724ae15a2", "cves": [], "html": "<p>Add slot synchronization skip information to <a href=\"/docs/19/monitoring-stats.html#PG-STAT-REPLICATION-SLOTS-VIEW\" title=\"Table\u00a027.15.\u00a0pg_stat_replication_slots View\"><code>pg_stat_replication_slots</code></a> and <a href=\"/docs/19/view-pg-replication-slots.html\" title=\"53.22.\u00a0pg_replication_slots\"><code>pg_replication_slots</code></a> (Shlok Kyal) <a href=\"https://postgr.es/c/76b78721c\">\u00a7</a> <a href=\"https://postgr.es/c/e68b6adad\">\u00a7</a> <a href=\"https://postgr.es/c/5db6a344a\">\u00a7</a></p>\n<p>The new columns are <code>slotsync_skip_count</code>, <code>slotsync_last_skip</code>, and <code>slotsync_skip_reason</code>.</p>", "text": "Add slot synchronization skip information to pg_stat_replication_slots and pg_replication_slots (Shlok Kyal) \u00a7 \u00a7 \u00a7 The new columns are slotsync_skip_count, slotsync_last_skip, and slotsync_skip_reason.", "title": "Add slot synchronization skip information to pg_stat_replication_slots and pg_replication_slots", "commits": ["5db6a344a", "76b78721c", "e68b6adad"], "section": "Server / System Views", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "d8925eb2bfe689f63e69e6dae4f48d8b75956d2bfac70bec609edde9645fd958", "section_path": ["Server", "System Views"], "commit_groups": [["5db6a344a"], ["76b78721c"], ["e68b6adad"]], "identity_text": "Add slot synchronization skip information to pg_stat_replication_slots and pg_replication_slots (Shlok Kyal) The new columns are slotsync_skip_count, slotsync_last_skip, and slotsync_skip_reason.", "commit_aliases": ["5db6a344a", "76b78721c", "e68b6adad"], "source_commits": ["5db6a344a", "76b78721c", "e68b6adad"], "source_entry_id": "19.0/changes/043", "db_id": "33312541b869a3ced60958b7fac86cfd", "patch_ids": ["2a7b52fc9cc0f09a034684e0e8729874", "3f9abdfe57a57258c11ccd012d52f696", "79aef1d91f4c48cc5dc9d3fbdf73d16b"], "statement_hash": "60dfecd88c78ab30c21adbfd57195484a37caeb6244ae6caa9b12c827cdbe934", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-ff9d450724ae15a2", "migration": false}, {"id": "19.0-4a53564c54d296d7", "cves": [], "html": "<p>Add <code>update_deleted</code> column to system view <a href=\"/docs/19/monitoring-stats.html#MONITORING-PG-STAT-SUBSCRIPTION-STATS\" title=\"27.2.10.\u00a0pg_stat_subscription_stats\"><code>pg_stat_subscription_stats</code></a> (Zhijie Hou) <a href=\"https://postgr.es/c/fd5a1a0c3\">\u00a7</a></p>\n<p>This reports the number of rows where updates were ignored due to concurrent deletes. This requires the subscriber have <code>retain_dead_tuples</code> enabled.</p>", "text": "Add update_deleted column to system view pg_stat_subscription_stats (Zhijie Hou) \u00a7 This reports the number of rows where updates were ignored due to concurrent deletes. This requires the subscriber have retain_dead_tuples enabled.", "title": "Add update_deleted column to system view pg_stat_subscription_stats", "commits": ["fd5a1a0c3"], "section": "Server / System Views", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "eac82733178f8d7d2986eda92cbd034efffab1d4ee8f03d308bcac6f716879c7", "section_path": ["Server", "System Views"], "commit_groups": [["fd5a1a0c3"]], "identity_text": "Add update_deleted column to system view pg_stat_subscription_stats (Zhijie Hou) This reports the number of rows where updates were ignored due to concurrent deletes. This requires the subscriber have retain_dead_tuples enabled.", "commit_aliases": ["fd5a1a0c3"], "source_commits": ["fd5a1a0c3"], "source_entry_id": "19.0/changes/044", "db_id": "f89a6e0c5a92f39d190d76e75a70f8a7", "patch_ids": ["37275251cc82b9be0c185ced82ebe5d1"], "statement_hash": "2f7dca5ad2be2e9b0291ba662276ebf16720d5ebbec006b272a0b9d0f4cc6a10", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-4a53564c54d296d7", "migration": false}, {"id": "19.0-71d4bb764aab8d55", "cves": [], "html": "<p>Add <code>sync_seq_error_count</code> column to system view <a href=\"/docs/19/monitoring-stats.html#PG-STAT-SUBSCRIPTION-STATS\" title=\"Table\u00a027.20.\u00a0pg_stat_subscription_stats View\"><code>pg_stat_subscription_stats</code></a> to report sequence synchronization errors (Vignesh C) <a href=\"https://postgr.es/c/f6a4c498d\">\u00a7</a> <a href=\"https://postgr.es/c/3edaf29fa\">\u00a7</a></p>", "text": "Add sync_seq_error_count column to system view pg_stat_subscription_stats to report sequence synchronization errors (Vignesh C) \u00a7 \u00a7", "title": "Add sync_seq_error_count column to system view pg_stat_subscription_stats to report sequence synchronization errors", "commits": ["3edaf29fa", "f6a4c498d"], "section": "Server / System Views", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "d12f91fffa8e66aee24b6460682a940e68cbd0c438cac3277879b4f9ffed9017", "section_path": ["Server", "System Views"], "commit_groups": [["3edaf29fa"], ["f6a4c498d"]], "identity_text": "Add sync_seq_error_count column to system view pg_stat_subscription_stats to report sequence synchronization errors (Vignesh C)", "commit_aliases": ["3edaf29fa", "f6a4c498d"], "source_commits": ["3edaf29fa", "f6a4c498d"], "source_entry_id": "19.0/changes/045", "db_id": "9a6f7f73dea73507b7e7d161044aa58a", "patch_ids": ["612943743e97964090c65bd7f4cdedca", "b5c7665c4c4526a9da93257182f99c1e"], "statement_hash": "399cd3f98c899e5b18290991e66a6551d45be708e894e76dd6bfeb0d481afa6f", "relations": [{"rule": 2, "type": "related", "target": "70cd59be0b3b3c22c3c028193c91e416", "evidence": {"same_day": false, "patch_ids": ["612943743e97964090c65bd7f4cdedca"]}}], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-71d4bb764aab8d55", "migration": false}, {"id": "19.0-6155faf56820003c", "cves": [], "html": "<p>Add <code>stats_reset</code> column to system views <a href=\"/docs/19/monitoring-stats.html#PG-STAT-ALL-TABLES-VIEW\" title=\"Table\u00a027.31.\u00a0pg_stat_all_tables View\"><code>pg_stat_all_tables</code></a>, <a href=\"/docs/19/monitoring-stats.html#PG-STAT-ALL-INDEXES-VIEW\" title=\"Table\u00a027.33.\u00a0pg_stat_all_indexes View\"><code>pg_stat_all_indexes</code></a>, and <a href=\"/docs/19/monitoring-stats.html#PG-STATIO-ALL-SEQUENCES-VIEW\" title=\"Table\u00a027.36.\u00a0pg_statio_all_sequences View\"><code>pg_statio_all_sequences</code></a> (Bertrand Drouvot, Sami Imseih, Shihao Zhong) <a href=\"https://postgr.es/c/a5b543258\">\u00a7</a></p>\n<p>It also appears in the <code>sys</code> and <code>user</code> view variants.</p>", "text": "Add stats_reset column to system views pg_stat_all_tables, pg_stat_all_indexes, and pg_statio_all_sequences (Bertrand Drouvot, Sami Imseih, Shihao Zhong) \u00a7 It also appears in the sys and user view variants.", "title": "Add stats_reset column to system views pg_stat_all_tables, pg_stat_all_indexes, and pg_statio_all_sequences", "commits": ["a5b543258"], "section": "Server / System Views", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "39ca4dd394136b917b921549a4735d5e4badc65fdb01ad5b9791dc48ddd972b7", "section_path": ["Server", "System Views"], "commit_groups": [["a5b543258"]], "identity_text": "Add stats_reset column to system views pg_stat_all_tables, pg_stat_all_indexes, and pg_statio_all_sequences (Bertrand Drouvot, Sami Imseih, Shihao Zhong) It also appears in the sys and user view variants.", "commit_aliases": ["a5b543258"], "source_commits": ["a5b543258"], "source_entry_id": "19.0/changes/046", "db_id": "f5c7e7c69cfdca9250acd3ee36e9c748", "patch_ids": ["b94fddee8119e23ed09407730cab96ee"], "statement_hash": "cb024b7464e21b154d2ac4a89912f39aa5989c4dc45edefc0432e4b61cbcf586", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-6155faf56820003c", "migration": false}, {"id": "19.0-c3f10b64632e5dbb", "cves": [], "html": "<p>Add <code>stats_reset</code> column to system views <a href=\"/docs/19/monitoring-stats.html#PG-STAT-USER-FUNCTIONS-VIEW\" title=\"Table\u00a027.37.\u00a0pg_stat_user_functions View\"><code>pg_stat_user_functions</code></a> and <a href=\"/docs/19/monitoring-stats.html#PG-STAT-DATABASE-CONFLICTS-VIEW\" title=\"Table\u00a027.30.\u00a0pg_stat_database_conflicts View\"><code>pg_stat_database_conflicts</code></a> (Bertrand Drouvot, Shihao Zhong) <a href=\"https://postgr.es/c/b71bae41a\">\u00a7</a> <a href=\"https://postgr.es/c/8fe315f18\">\u00a7</a></p>", "text": "Add stats_reset column to system views pg_stat_user_functions and pg_stat_database_conflicts (Bertrand Drouvot, Shihao Zhong) \u00a7 \u00a7", "title": "Add stats_reset column to system views pg_stat_user_functions and pg_stat_database_conflicts", "commits": ["8fe315f18", "b71bae41a"], "section": "Server / System Views", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "614ec509248545f6812f20962edda14d8096d7113923d5facc811f363211db45", "section_path": ["Server", "System Views"], "commit_groups": [["8fe315f18"], ["b71bae41a"]], "identity_text": "Add stats_reset column to system views pg_stat_user_functions and pg_stat_database_conflicts (Bertrand Drouvot, Shihao Zhong)", "commit_aliases": ["8fe315f18", "b71bae41a"], "source_commits": ["8fe315f18", "b71bae41a"], "source_entry_id": "19.0/changes/047", "db_id": "505b4dd55dff2c91658e2a2d1715bdc4", "patch_ids": ["d5de6bdab3281831e2e8260330bfa7d6", "fc9ce8f2f50f1d20581255dcbf9d63c6"], "statement_hash": "e3e54c16b395124e7f99d30b786922557116cf96924b7e69b79afe9c18c019c2", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-c3f10b64632e5dbb", "migration": false}, {"id": "19.0-f3c3d76a67c0c2de", "cves": [], "html": "<p>Add <code>location</code> column to system views <a href=\"/docs/19/view-pg-available-extensions.html\" title=\"53.3.\u00a0pg_available_extensions\"><code>pg_available_extensions</code></a> and <a href=\"/docs/19/view-pg-available-extension-versions.html\" title=\"53.4.\u00a0pg_available_extension_versions\"><code>pg_available_extension_versions</code></a> to report the file system directory of extensions (Matheus Alcantara) <a href=\"https://postgr.es/c/f3c9e341c\">\u00a7</a></p>", "text": "Add location column to system views pg_available_extensions and pg_available_extension_versions to report the file system directory of extensions (Matheus Alcantara) \u00a7", "title": "Add location column to system views pg_available_extensions and pg_available_extension_versions to report the file system directory of extensions", "commits": ["f3c9e341c"], "section": "Server / System Views", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "bd4f62431beab10b72bd1d87afc469e9a8a94163423213a9810e2833de74f13a", "section_path": ["Server", "System Views"], "commit_groups": [["f3c9e341c"]], "identity_text": "Add location column to system views pg_available_extensions and pg_available_extension_versions to report the file system directory of extensions (Matheus Alcantara)", "commit_aliases": ["f3c9e341c"], "source_commits": ["f3c9e341c"], "source_entry_id": "19.0/changes/048", "db_id": "f1b35f8c303382fe0fb2d0980b35c48e", "patch_ids": ["8c2b61f2e68b7748094e89a3e7bdcbda"], "statement_hash": "6b6cd5af842618c2f752830802047edc7f1ed45b71dc2499c2309fbead9aaf0b", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-f3c3d76a67c0c2de", "migration": false}, {"id": "19.0-c29496b450c1df66", "cves": [], "html": "<p>Add <code>backup_type</code> column to system view <a href=\"/docs/19/progress-reporting.html#PG-STAT-PROGRESS-BASEBACKUP-VIEW\" title=\"Table\u00a027.52.\u00a0pg_stat_progress_basebackup View\"><code>pg_stat_progress_basebackup</code></a> to report the type of backup (Shinya Kato) <a href=\"https://postgr.es/c/deb674454\">\u00a7</a></p>\n<p>Possible values are <code>full</code> or <code>incremental</code>.</p>", "text": "Add backup_type column to system view pg_stat_progress_basebackup to report the type of backup (Shinya Kato) \u00a7 Possible values are full or incremental.", "title": "Add backup_type column to system view pg_stat_progress_basebackup to report the type of backup", "commits": ["deb674454"], "section": "Server / System Views", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "fc26cc2b937113e8336cebcfa15d2737b8980f1373b9e949ad88646e70cd6231", "section_path": ["Server", "System Views"], "commit_groups": [["deb674454"]], "identity_text": "Add backup_type column to system view pg_stat_progress_basebackup to report the type of backup (Shinya Kato) Possible values are full or incremental.", "commit_aliases": ["deb674454"], "source_commits": ["deb674454"], "source_entry_id": "19.0/changes/049", "db_id": "1f9f8ed94d3c59c2eda6090a073ad7e2", "patch_ids": ["0e7f9ff1a56b8d6464997f032f104edf"], "statement_hash": "b93e2ee71cbbcdc1a03bc1ac1c70dddd165abdc3b2cba5f51a6dd03422b673db", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-c29496b450c1df66", "migration": false}, {"id": "19.0-a08c490c7d60f3eb", "cves": [], "html": "<p>Add <code>connecting</code> value to system view column <a href=\"/docs/19/monitoring-stats.html#PG-STAT-WAL-RECEIVER-VIEW\" title=\"Table\u00a027.16.\u00a0pg_stat_wal_receiver View\"><code>pg_stat_wal_receiver</code></a>.<a href=\"/docs/19/monitoring-stats.html#PG-STAT-WAL-RECEIVER-VIEW\" title=\"Table\u00a027.16.\u00a0pg_stat_wal_receiver View\"><code>status</code></a> (Xuneng Zhou) <a href=\"https://postgr.es/c/a36164e74\">\u00a7</a></p>", "text": "Add connecting value to system view column pg_stat_wal_receiver.status (Xuneng Zhou) \u00a7", "title": "Add connecting value to system view column pg_stat_wal_receiver.status", "commits": ["a36164e74"], "section": "Server / System Views", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "b92a46a95d3bbdc52c8cd87d6c05c9c69b51eca943b6ac75a91f7bfef8fc424e", "section_path": ["Server", "System Views"], "commit_groups": [["a36164e74"]], "identity_text": "Add connecting value to system view column pg_stat_wal_receiver.status (Xuneng Zhou)", "commit_aliases": ["a36164e74"], "source_commits": ["a36164e74"], "source_entry_id": "19.0/changes/050", "db_id": "896b36096549f4229d02416c3d5820d6", "patch_ids": ["f9eed4e89f63f05e1078d7540fc2a0ee"], "statement_hash": "9df65d2de7d50d88bfb2f0b9d13bf18655a5643ec30dea8eb6b4f90f6e63cb0b", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-a08c490c7d60f3eb", "migration": false}, {"id": "19.0-bfe19fbe05220558", "cves": [], "html": "<p>Add reporting of the bytes written to <acronym>WAL</acronym> for full page images (Shinya Kato) <a href=\"https://postgr.es/c/f9a09aa29\">\u00a7</a></p>\n<p>This is accessible via system view <a href=\"/docs/19/monitoring-stats.html#PG-STAT-WAL-VIEW\" title=\"Table\u00a027.28.\u00a0pg_stat_wal View\"><code>pg_stat_wal</code></a> and function <a href=\"/docs/19/monitoring-stats.html#PG-STAT-GET-BACKEND-WAL\"><code>pg_stat_get_backend_wal()</code></a>.</p>", "text": "Add reporting of the bytes written to WAL for full page images (Shinya Kato) \u00a7 This is accessible via system view pg_stat_wal and function pg_stat_get_backend_wal().", "title": "Add reporting of the bytes written to WAL for full page images", "commits": ["f9a09aa29"], "section": "Server / System Views", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "dcec56ab9d88744d8c71c3102ff80da549e3026d2abfb849cb643c40c3f742e1", "section_path": ["Server", "System Views"], "commit_groups": [["f9a09aa29"]], "identity_text": "Add reporting of the bytes written to WAL for full page images (Shinya Kato) This is accessible via system view pg_stat_wal and function pg_stat_get_backend_wal().", "commit_aliases": ["f9a09aa29"], "source_commits": ["f9a09aa29"], "source_entry_id": "19.0/changes/051", "db_id": "ffa410b8956c468fd5b1d6ca8f0bb0f2", "patch_ids": ["97045c11cebea7be33f1e014d9f1bcec"], "statement_hash": "c762b46b810558e16db8b5d877553814f88bf9b0ffbad7b67bcfcc0f548b0f96", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-bfe19fbe05220558", "migration": false}, {"id": "19.0-408a13e9d99b48b8", "cves": [], "html": "<p>Add columns to system views <a href=\"/docs/19/view-pg-stats.html\" title=\"53.31.\u00a0pg_stats\"><code>pg_stats</code></a>, <a href=\"/docs/19/view-pg-stats-ext.html\" title=\"53.32.\u00a0pg_stats_ext\"><code>pg_stats_ext</code></a>, and <a href=\"/docs/19/view-pg-stats-ext-exprs.html\" title=\"53.33.\u00a0pg_stats_ext_exprs\"><code>pg_stats_ext_exprs</code></a> (Corey Huinker) <a href=\"https://postgr.es/c/3b88e50d6\">\u00a7</a></p>\n<p>Adds table <code>OID</code> and attribute number columns to <a href=\"/docs/19/view-pg-stats.html\" title=\"53.31.\u00a0pg_stats\"><code>pg_stats</code></a>, and table <code>OID</code> and statistics object <code>OID</code> columns to the other two.</p>", "text": "Add columns to system views pg_stats, pg_stats_ext, and pg_stats_ext_exprs (Corey Huinker) \u00a7 Adds table OID and attribute number columns to pg_stats, and table OID and statistics object OID columns to the other two.", "title": "Add columns to system views pg_stats, pg_stats_ext, and pg_stats_ext_exprs", "commits": ["3b88e50d6"], "section": "Server / System Views", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "77a507a60e5bb6de26e73824f5eab9e337ebfb84afe0035ece07905867de0aee", "section_path": ["Server", "System Views"], "commit_groups": [["3b88e50d6"]], "identity_text": "Add columns to system views pg_stats, pg_stats_ext, and pg_stats_ext_exprs (Corey Huinker) Adds table OID and attribute number columns to pg_stats, and table OID and statistics object OID columns to the other two.", "commit_aliases": ["3b88e50d6"], "source_commits": ["3b88e50d6"], "source_entry_id": "19.0/changes/052", "db_id": "12db9d49dbacdd3acd3097499d95257b", "patch_ids": ["167e0c8c1a26c272980190d8e7a0e270"], "statement_hash": "0f862843f1f0944fb238a9e11512a752eb6794b9a8b72ff5efa632c311c6e038", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-408a13e9d99b48b8", "migration": false}, {"id": "19.0-124456c1261bc1af", "cves": [], "html": "<p>Add information about range type <a href=\"/docs/19/sql-createstatistics.html\" title=\"CREATE STATISTICS\">extended statistics</a> to system view <a href=\"/docs/19/view-pg-stats-ext-exprs.html\" title=\"53.33.\u00a0pg_stats_ext_exprs\"><code>pg_stats_ext_exprs</code></a> (Corey Huinker, Michael Paquier) <a href=\"https://postgr.es/c/307447e6d\">\u00a7</a></p>", "text": "Add information about range type extended statistics to system view pg_stats_ext_exprs (Corey Huinker, Michael Paquier) \u00a7", "title": "Add information about range type extended statistics to system view pg_stats_ext_exprs", "commits": ["307447e6d"], "section": "Server / System Views", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SYSTEM-VIEWS", "source_hash": "7004b133b9a4e3e0727d2816fd789a780834eb4ce50bd9597676936bc9b2cb83", "section_path": ["Server", "System Views"], "commit_groups": [["307447e6d"]], "identity_text": "Add information about range type extended statistics to system view pg_stats_ext_exprs (Corey Huinker, Michael Paquier)", "commit_aliases": ["307447e6d"], "source_commits": ["307447e6d"], "source_entry_id": "19.0/changes/053", "db_id": "2652a7114a139c675a08bcc66bca5c29", "patch_ids": ["a3f874f89e51ed918a91885a562fc58a"], "statement_hash": "a3e7d5a72903aacf1d92bd38b10a48ee7596723c687678c56503c342ea5cb53b", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-124456c1261bc1af", "migration": false}, {"id": "19.0-7f276ad3d76d92d5", "cves": [], "html": "<p>Allow <a href=\"/docs/19/runtime-config-logging.html#GUC-LOG-MIN-MESSAGES\"><code>log_min_messages</code></a> log levels to be specified by process type (Euler Taveira) <a href=\"https://postgr.es/c/38e0190ce\">\u00a7</a></p>\n<p>The new format is <em><code>type</code></em>:<em><code>level</code></em>. A value without a colon controls all process types, allowing backward compatibility.</p>", "text": "Allow log_min_messages log levels to be specified by process type (Euler Taveira) \u00a7 The new format is type:level. A value without a colon controls all process types, allowing backward compatibility.", "title": "Allow log_min_messages log levels to be specified by process type", "commits": ["38e0190ce"], "section": "Server / Monitoring", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MONITORING", "source_hash": "be7290339ed3386b65ba52e168d8f8e299a2362e9999cbad239f7d391974f0a4", "section_path": ["Server", "Monitoring"], "commit_groups": [["38e0190ce"]], "identity_text": "Allow log_min_messages log levels to be specified by process type (Euler Taveira) The new format is type:level. A value without a colon controls all process types, allowing backward compatibility.", "commit_aliases": ["38e0190ce"], "source_commits": ["38e0190ce"], "source_entry_id": "19.0/changes/054", "db_id": "ac30fd513b37b90f8faa730408010b32", "patch_ids": ["66cbc829f955df84710d975f92c71012"], "statement_hash": "7f05b75ae5b85f970d1b12a0689bf0272dc6ceff5685156ccecbf05b22fe4414", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-7f276ad3d76d92d5", "migration": false}, {"id": "19.0-03e42e393804f779", "cves": [], "html": "<p>Add server variable <a href=\"/docs/19/runtime-config-logging.html#GUC-LOG-AUTOANALYZE-MIN-DURATION\"><code>log_autoanalyze_min_duration</code></a> to log long-running analyze operations by <a href=\"/docs/19/routine-vacuuming.html#AUTOVACUUM\" title=\"24.1.6.\u00a0The Autovacuum Daemon\">autovacuum</a> operations (Shinya Kato) <a href=\"https://postgr.es/c/dd3ae3783\">\u00a7</a></p>\n<p>Server variable <a href=\"/docs/19/runtime-config-logging.html#GUC-LOG-AUTOVACUUM-MIN-DURATION\"><code>log_autovacuum_min_duration</code></a> now only controls logging of vacuum operations by autovacuum.</p>", "text": "Add server variable log_autoanalyze_min_duration to log long-running analyze operations by autovacuum operations (Shinya Kato) \u00a7 Server variable log_autovacuum_min_duration now only controls logging of vacuum operations by autovacuum.", "title": "Add server variable log_autoanalyze_min_duration to log long-running analyze operations by autovacuum operations", "commits": ["dd3ae3783"], "section": "Server / Monitoring", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MONITORING", "source_hash": "3ab69293512f4b1b4b7de4192280ae028f260485f379c42bf7328c01d1cf13ec", "section_path": ["Server", "Monitoring"], "commit_groups": [["dd3ae3783"]], "identity_text": "Add server variable log_autoanalyze_min_duration to log long-running analyze operations by autovacuum operations (Shinya Kato) Server variable log_autovacuum_min_duration now only controls logging of vacuum operations by autovacuum.", "commit_aliases": ["dd3ae3783"], "source_commits": ["dd3ae3783"], "source_entry_id": "19.0/changes/055", "db_id": "58e5a1965b6c9bd4c80f9ab5181ecfc4", "patch_ids": ["84b365b1be8baa0d0a64ba5ea86f4c79"], "statement_hash": "82a3f532d09f34212cda73df8c277f405507eca0db1af1dc032e3dbb92d90fa7", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-03e42e393804f779", "migration": false}, {"id": "19.0-c21951750798d7d4", "cves": [], "html": "<p>Enable server variable <a href=\"/docs/19/runtime-config-logging.html#GUC-LOG-LOCK-WAITS\"><code>log_lock_waits</code></a> by default (Laurenz Albe) <a href=\"https://postgr.es/c/2aac62be8\">\u00a7</a></p>", "text": "Enable server variable log_lock_waits by default (Laurenz Albe) \u00a7", "title": "Enable server variable log_lock_waits by default", "commits": ["2aac62be8"], "section": "Server / Monitoring", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MONITORING", "source_hash": "d8803b32a7ee48607b51d287f97cf4bd9a75011cd6bbfd480c270c372aefc5f9", "section_path": ["Server", "Monitoring"], "commit_groups": [["2aac62be8"]], "identity_text": "Enable server variable log_lock_waits by default (Laurenz Albe)", "commit_aliases": ["2aac62be8"], "source_commits": ["2aac62be8"], "source_entry_id": "19.0/changes/056", "db_id": "862330852250e39402618fa205b0a7f7", "patch_ids": ["ebb36d7ba1d8de32a89cb9080070a98e"], "statement_hash": "fca93df9b61caa1563288978fbd0271a240aa3aa5cfa56c90e992a3f9750caba", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-c21951750798d7d4", "migration": false}, {"id": "19.0-640782815f1992c6", "cves": [], "html": "<p>Add server variable <a href=\"/docs/19/runtime-config-logging.html#GUC-DEBUG-PRINT-RAW-PARSE\"><code>debug_print_raw_parse</code></a> to log raw parse trees (Chao Li) <a href=\"https://postgr.es/c/06473f5a3\">\u00a7</a></p>\n<p>This is also enabled when the server is started with debug level three and higher.</p>", "text": "Add server variable debug_print_raw_parse to log raw parse trees (Chao Li) \u00a7 This is also enabled when the server is started with debug level three and higher.", "title": "Add server variable debug_print_raw_parse to log raw parse trees", "commits": ["06473f5a3"], "section": "Server / Monitoring", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MONITORING", "source_hash": "cf2b08c6678a0a1a1b8123788c8c9b909cd72f7ab49aa1b35cd5d06be6b81989", "section_path": ["Server", "Monitoring"], "commit_groups": [["06473f5a3"]], "identity_text": "Add server variable debug_print_raw_parse to log raw parse trees (Chao Li) This is also enabled when the server is started with debug level three and higher.", "commit_aliases": ["06473f5a3"], "source_commits": ["06473f5a3"], "source_entry_id": "19.0/changes/057", "db_id": "5646c356710a0ff468e680767a12145f", "patch_ids": ["35275b87d078704b84093abdbb33b317"], "statement_hash": "888aed639a6c6d53026c2715f12cfbf15bb0732325722454f20900b5f470d25d", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-640782815f1992c6", "migration": false}, {"id": "19.0-fcff94c8e75b9a3e", "cves": [], "html": "<p>Make messages coming from remote servers appear in the server logs in the same format as local server messages (Vignesh C) <a href=\"https://postgr.es/c/112faf137\">\u00a7</a></p>\n<p>These include replication, <a href=\"/docs/19/postgres-fdw.html\" title=\"F.40.\u00a0postgres_fdw \u2014 access data stored in external PostgreSQL servers\">postgres_fdw</a>, and <a href=\"/docs/19/dblink.html\" title=\"F.11.\u00a0dblink \u2014 connect to other PostgreSQL databases\">dblink</a> servers.</p>", "text": "Make messages coming from remote servers appear in the server logs in the same format as local server messages (Vignesh C) \u00a7 These include replication, postgres_fdw, and dblink servers.", "title": "Make messages coming from remote servers appear in the server logs in the same format as local server messages", "commits": ["112faf137"], "section": "Server / Monitoring", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MONITORING", "source_hash": "4ae996182bc6ba341f5e82fada3ae225f941056fba9d335934e5a8ae1b3733fb", "section_path": ["Server", "Monitoring"], "commit_groups": [["112faf137"]], "identity_text": "Make messages coming from remote servers appear in the server logs in the same format as local server messages (Vignesh C) These include replication, postgres-fdw , and dblink servers.", "commit_aliases": ["112faf137"], "source_commits": ["112faf137"], "source_entry_id": "19.0/changes/058", "db_id": "2cd99aa5d193f608f0189a8061cb76f6", "patch_ids": ["ccf9c16787dca7d50e3a9153f9cfb579"], "statement_hash": "77ed52b035fe5f53546a51163df4617c0ab7ab64f9c6bced5a8bf49f6daca771", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-fcff94c8e75b9a3e", "migration": false}, {"id": "19.0-51905d1ba76fdedc", "cves": [], "html": "<p>Add reporting of <acronym>WAL</acronym> <a href=\"/docs/19/runtime-config-wal.html#GUC-FULL-PAGE-WRITES\">full-page write</a> bytes to <a href=\"/docs/19/sql-vacuum.html\" title=\"VACUUM\"><code>VACUUM</code></a> and <a href=\"/docs/19/sql-analyze.html\" title=\"ANALYZE\"><code>ANALYZE</code></a> logging (Shinya Kato) <a href=\"https://postgr.es/c/ad25744f4\">\u00a7</a></p>", "text": "Add reporting of WAL full-page write bytes to VACUUM and ANALYZE logging (Shinya Kato) \u00a7", "title": "Add reporting of WAL full-page write bytes to VACUUM and ANALYZE logging", "commits": ["ad25744f4"], "section": "Server / Monitoring", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MONITORING", "source_hash": "e4d576827da843c05aebed37f9de9df430acabe17e1ee06c9455ef6850ce86cd", "section_path": ["Server", "Monitoring"], "commit_groups": [["ad25744f4"]], "identity_text": "Add reporting of WAL full-page write bytes to VACUUM and ANALYZE logging (Shinya Kato)", "commit_aliases": ["ad25744f4"], "source_commits": ["ad25744f4"], "source_entry_id": "19.0/changes/059", "db_id": "955d9e4b2698a280b008c584d9539486", "patch_ids": ["94a3f0e4a3b21f2c53910cfca81db9ff"], "statement_hash": "a44cec2b41fa334c464c3877a0ebf1d70f42fabbbc377f9751741f45ee8cde36", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-51905d1ba76fdedc", "migration": false}, {"id": "19.0-107c6de29ce7902e", "cves": [], "html": "<p>Add IO wait events for <a href=\"/docs/19/sql-copy.html\" title=\"COPY\"><code>COPY FROM/TO</code></a> on a pipe, file, or program (Nikolay Samokhvalov) <a href=\"https://postgr.es/c/e05a24c2d\">\u00a7</a></p>", "text": "Add IO wait events for COPY FROM/TO on a pipe, file, or program (Nikolay Samokhvalov) \u00a7", "title": "Add IO wait events for COPY FROM/TO on a pipe, file, or program", "commits": ["e05a24c2d"], "section": "Server / Monitoring", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MONITORING", "source_hash": "5396bad096ad5313b40ecedabf957cdd0804d5e03395a39537797401e355c0b2", "section_path": ["Server", "Monitoring"], "commit_groups": [["e05a24c2d"]], "identity_text": "Add IO wait events for COPY FROM/TO on a pipe, file, or program (Nikolay Samokhvalov)", "commit_aliases": ["e05a24c2d"], "source_commits": ["e05a24c2d"], "source_entry_id": "19.0/changes/060", "db_id": "b3b01a7c701b61ef5858222373ff004a", "patch_ids": ["2630f9bc0cce8bc4ebf35ca0c0d14d12"], "statement_hash": "5de254cc8cd56e901c00de548a4109f9ca758ba8ef1f2a39432e282362c077d9", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-107c6de29ce7902e", "migration": false}, {"id": "19.0-575a583a5b3d25dc", "cves": [], "html": "<p>Add wait events for <a href=\"/docs/19/runtime-config-wal.html#GUC-COMMIT-DELAY\">commit_delay</a> and for <acronym>WAL</acronym> write and flush <a href=\"/docs/19/wal-internals.html\" title=\"28.6.\u00a0WAL Internals\">LSN</a>s (Xuneng Zhou) <a href=\"https://postgr.es/c/7a39f43d8\">\u00a7</a> <a href=\"https://postgr.es/c/3cb5808bd\">\u00a7</a></p>", "text": "Add wait events for commit_delay and for WAL write and flush LSNs (Xuneng Zhou) \u00a7 \u00a7", "title": "Add wait events for commit_delay and for WAL write and flush LSNs", "commits": ["3cb5808bd", "7a39f43d8"], "section": "Server / Monitoring", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MONITORING", "source_hash": "b6cdd2c52e3d79b26d3f29232151d98d568bf6c9066cf95a0b816da2483f1c53", "section_path": ["Server", "Monitoring"], "commit_groups": [["3cb5808bd"], ["7a39f43d8"]], "identity_text": "Add wait events for guc-commit-delay and for WAL write and flush LSNs (Xuneng Zhou)", "commit_aliases": ["3cb5808bd", "7a39f43d8"], "source_commits": ["3cb5808bd", "7a39f43d8"], "source_entry_id": "19.0/changes/061", "db_id": "9ce16931b04b6b8074722b817754bc63", "patch_ids": ["1f0d51e7a5eb278056c49933b60ca129", "aa919e1de06d26365f9c5f03b3bcdf3a"], "statement_hash": "971e2da0d9f5c4e877063d950e28551c7a6d2239996851345a33279cfbe6c6c3", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-575a583a5b3d25dc", "migration": false}, {"id": "19.0-68646ca8ac71b5bf", "cves": [], "html": "<p>Have <a href=\"/docs/19/functions-sequence.html#FUNC-PG-GET-SEQUENCE-DATA\"><code>pg_get_sequence_data()</code></a> return the sequence page <a href=\"/docs/19/wal-internals.html\" title=\"28.6.\u00a0WAL Internals\"><acronym>LSN</acronym></a> (Vignesh C) <a href=\"https://postgr.es/c/b93172ca5\">\u00a7</a></p>", "text": "Have pg_get_sequence_data() return the sequence page LSN (Vignesh C) \u00a7", "title": "Have pg_get_sequence_data() return the sequence page LSN", "commits": ["b93172ca5"], "section": "Server / Monitoring", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MONITORING", "source_hash": "01e5953fadc89c81a681f12c7123f2d6105b9af0f43071e0f43a34b22826174d", "section_path": ["Server", "Monitoring"], "commit_groups": [["b93172ca5"]], "identity_text": "Have pg_get_sequence_data() return the sequence page LSN (Vignesh C)", "commit_aliases": ["b93172ca5"], "source_commits": ["b93172ca5"], "source_entry_id": "19.0/changes/062", "db_id": "5c4b41b07ad5a6846d0f88875676a366", "patch_ids": ["ca358649ef732c7b4f3918d56e59e40a"], "statement_hash": "0d6a38307641d0f3030b9c7495bfa8fae80ef337dafac322eea8a774c6c546c8", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-68646ca8ac71b5bf", "migration": false}, {"id": "19.0-38f6544a1894b7b4", "cves": [], "html": "<p>Add function <a href=\"/docs/19/functions-info.html#FUNCTIONS-INFO-SNAPSHOT\" title=\"9.28.8.\u00a0Transaction ID and Snapshot Information Functions\"><code>pg_get_multixact_stats()</code></a> to report <a href=\"/docs/19/routine-vacuuming.html#VACUUM-FOR-MULTIXACT-WRAPAROUND\" title=\"24.1.5.1.\u00a0Multixacts and Wraparound\">multixact</a> activity (Naga Appani) <a href=\"https://postgr.es/c/97b101776\">\u00a7</a></p>", "text": "Add function pg_get_multixact_stats() to report multixact activity (Naga Appani) \u00a7", "title": "Add function pg_get_multixact_stats() to report multixact activity", "commits": ["97b101776"], "section": "Server / Monitoring", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MONITORING", "source_hash": "4d55154169088eccde38cc1ff20475d6012724007fdacd5c597a43bd5a9772c2", "section_path": ["Server", "Monitoring"], "commit_groups": [["97b101776"]], "identity_text": "Add function pg_get_multixact_stats() to report multixact activity (Naga Appani)", "commit_aliases": ["97b101776"], "source_commits": ["97b101776"], "source_entry_id": "19.0/changes/063", "db_id": "bf2a05dc98b437e70313063ece4b32a8", "patch_ids": ["0d2af11dadc727e6184dfcf0ec4cd491"], "statement_hash": "ccd410072bda5c9bf21cdd7f9c9b21c66a942c5b683eaa70c7fe9c3ea332f5d2", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-38f6544a1894b7b4", "migration": false}, {"id": "19.0-b8f9f0ccf4c3b14c", "cves": [], "html": "<p>Issue warnings when the <a href=\"/docs/19/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND\" title=\"24.1.5.\u00a0Preventing Transaction ID Wraparound Failures\">wraparound</a> of xid and multi-xids is less than 100 million (Nathan Bossart) <a href=\"https://postgr.es/c/48f11bfa0\">\u00a7</a></p>\n<p>The previous warning was 40 million. Warnings are issued to clients and in the server log.</p>", "text": "Issue warnings when the wraparound of xid and multi-xids is less than 100 million (Nathan Bossart) \u00a7 The previous warning was 40 million. Warnings are issued to clients and in the server log.", "title": "Issue warnings when the wraparound of xid and multi-xids is less than 100 million", "commits": ["48f11bfa0"], "section": "Server / Monitoring", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MONITORING", "source_hash": "c5e174788f858c1ea39304f17b2f2e66d81fbe3a3b5cbce9ae18976d4b3b960b", "section_path": ["Server", "Monitoring"], "commit_groups": [["48f11bfa0"]], "identity_text": "Issue warnings when the wraparound of xid and multi-xids is less than 100 million (Nathan Bossart) The previous warning was 40 million. Warnings are issued to clients and in the server log.", "commit_aliases": ["48f11bfa0"], "source_commits": ["48f11bfa0"], "source_entry_id": "19.0/changes/064", "db_id": "c86b2dfd0978d65014a81a022bfc457e", "patch_ids": ["56cc61cb3c8c85c3391226a6d84b88b9"], "statement_hash": "fbeacdf215797907d57b49f52da6308db6ae4242af2333d2566670274680679c", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-b8f9f0ccf4c3b14c", "migration": false}, {"id": "19.0-cb57c6cecaf356d3", "cves": [], "html": "<p>Add scoring system to control the order that tables are processed by <a href=\"/docs/19/routine-vacuuming.html#AUTOVACUUM\" title=\"24.1.6.\u00a0The Autovacuum Daemon\">autovacuum</a> (Nathan Bossart) <a href=\"https://postgr.es/c/d7965d65f\">\u00a7</a></p>\n<p>The new server variables are <a href=\"/docs/19/runtime-config-vacuum.html#GUC-AUTOVACUUM-FREEZE-SCORE-WEIGHT\"><code>autovacuum_freeze_score_weight</code></a>, <a href=\"/docs/19/runtime-config-vacuum.html#GUC-AUTOVACUUM-MULTIXACT-FREEZE-SCORE-WEIGHT\"><code>autovacuum_multixact_freeze_score_weight</code></a>, <a href=\"/docs/19/runtime-config-vacuum.html#GUC-AUTOVACUUM-VACUUM-SCORE-WEIGHT\"><code>autovacuum_vacuum_score_weight</code></a>, <a href=\"/docs/19/runtime-config-vacuum.html#GUC-AUTOVACUUM-VACUUM-INSERT-SCORE-WEIGHT\"><code>autovacuum_vacuum_insert_score_weight</code></a>, and <a href=\"/docs/19/runtime-config-vacuum.html#GUC-AUTOVACUUM-ANALYZE-SCORE-WEIGHT\"><code>autovacuum_analyze_score_weight</code></a>.</p>", "text": "Add scoring system to control the order that tables are processed by autovacuum (Nathan Bossart) \u00a7 The new server variables are autovacuum_freeze_score_weight, autovacuum_multixact_freeze_score_weight, autovacuum_vacuum_score_weight, autovacuum_vacuum_insert_score_weight, and autovacuum_analyze_score_weight.", "title": "Add scoring system to control the order that tables are processed by autovacuum", "commits": ["d7965d65f"], "section": "Server / Server Configuration", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SERVER-CONFIG", "source_hash": "d8b3f9b36a9bdfec1ee792da2576f86cdfbc83d6d11f47e3f6a5ce182f6d9c4f", "section_path": ["Server", "Server Configuration"], "commit_groups": [["d7965d65f"]], "identity_text": "Add scoring system to control the order that tables are processed by autovacuum (Nathan Bossart) The new server variables are autovacuum_freeze_score_weight, autovacuum_multixact_freeze_score_weight, autovacuum_vacuum_score_weight, autovacuum_vacuum_insert_score_weight, and autovacuum_analyze_score_weight.", "commit_aliases": ["d7965d65f"], "source_commits": ["d7965d65f"], "source_entry_id": "19.0/changes/065", "db_id": "0d9f9454c64cc4b7eedd304905ab4a38", "patch_ids": ["76b377a180730964486ff9a5ba182cb0"], "statement_hash": "3f0ba68cd9ab64f66d615898394c7a5b6c80ea26b2fda9fbc05de01328ca52eb", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-cb57c6cecaf356d3", "migration": false}, {"id": "19.0-159f03f64dfb3e8a", "cves": [], "html": "<p>Add server-side support for <a href=\"/docs/19/ssl-tcp.html#SSL-SNI\" title=\"18.9.6.\u00a0SNI Configuration\"><acronym>SNI</acronym></a> (Server Name Indication) (Daniel Gustafsson, Jacob Champion) <a href=\"https://postgr.es/c/4f433025f\">\u00a7</a></p>\n<p>New configuration file <a href=\"/docs/19/runtime-config-file-locations.html#GUC-HOSTS-FILE\"><code>PGDATA/pg_hosts.conf</code></a> specifies hostname/key pairs.</p>", "text": "Add server-side support for SNI (Server Name Indication) (Daniel Gustafsson, Jacob Champion) \u00a7 New configuration file PGDATA/pg_hosts.conf specifies hostname/key pairs.", "title": "Add server-side support for SNI (Server Name Indication)", "commits": ["4f433025f"], "section": "Server / Server Configuration", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SERVER-CONFIG", "source_hash": "5396b0786935e53ff282bb1bcbacbed3145bc9f074c3ef37e13b7de884b63a8f", "section_path": ["Server", "Server Configuration"], "commit_groups": [["4f433025f"]], "identity_text": "Add server-side support for SNI (Server Name Indication) (Daniel Gustafsson, Jacob Champion) New configuration file PGDATA/pg_hosts.conf specifies hostname/key pairs.", "commit_aliases": ["4f433025f"], "source_commits": ["4f433025f"], "source_entry_id": "19.0/changes/066", "db_id": "06e99b63f9b1a29614cfa69977c749fe", "patch_ids": ["7ce29b9884bd363f5cf3fd82d02f9636"], "statement_hash": "0bca0f0700c01e6cfc8f695015587f5958945bd3795e2ebb116b677ec0be540b", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-159f03f64dfb3e8a", "migration": false}, {"id": "19.0-1568b52895002620", "cves": [], "html": "<p>Allow OAuth validators to register custom <a href=\"/docs/19/auth-pg-hba-conf.html\" title=\"20.1.\u00a0The pg_hba.conf File\"><code>pg_hba.conf</code></a> authentication options (Jacob Champion, Zsolt Parragi) <a href=\"https://postgr.es/c/b977bd308\">\u00a7</a></p>", "text": "Allow OAuth validators to register custom pg_hba.conf authentication options (Jacob Champion, Zsolt Parragi) \u00a7", "title": "Allow OAuth validators to register custom pg_hba.conf authentication options", "commits": ["b977bd308"], "section": "Server / Server Configuration", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SERVER-CONFIG", "source_hash": "b9cd2f6fe915572004508203dea57ce73e713ab594c4763e21184f480036dff4", "section_path": ["Server", "Server Configuration"], "commit_groups": [["b977bd308"]], "identity_text": "Allow OAuth validators to register custom pg_hba.conf authentication options (Jacob Champion, Zsolt Parragi)", "commit_aliases": ["b977bd308"], "source_commits": ["b977bd308"], "source_entry_id": "19.0/changes/067", "db_id": "6af79610fa6d25b69fac86cc1b525a9a", "patch_ids": ["5b9e5d4e7cef9936983e3f65efaa6693"], "statement_hash": "2e148139c5c99b96fdb277c39e38ba6347c5afec649c1cd7f9022d3f9f2f16bc", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-1568b52895002620", "migration": false}, {"id": "19.0-ead1db00a773cb6b", "cves": [], "html": "<p>Allow roles <a href=\"/docs/19/predefined-roles.html#PREDEFINED-ROLE-PG-READ-ALL-DATA\"><code>pg_read_all_data</code></a> and <a href=\"/docs/19/predefined-roles.html#PREDEFINED-ROLE-PG-READ-ALL-DATA\"><code>pg_write_all_data</code></a> to read/write large objects (Nitin Motiani, Nathan Bossart) <a href=\"https://postgr.es/c/d98197602\">\u00a7</a></p>\n<p>These roles are designed to allow non-super users to run <a href=\"/docs/19/app-pgdump.html\" title=\"pg_dump\"><span>pg_dump</span></a>.</p>", "text": "Allow roles pg_read_all_data and pg_write_all_data to read/write large objects (Nitin Motiani, Nathan Bossart) \u00a7 These roles are designed to allow non-super users to run pg_dump.", "title": "Allow roles pg_read_all_data and pg_write_all_data to read/write large objects", "commits": ["d98197602"], "section": "Server / Server Configuration", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SERVER-CONFIG", "source_hash": "127199712cb45ed03c695d443c22da7886e43b5a3c861863e0938e4249869482", "section_path": ["Server", "Server Configuration"], "commit_groups": [["d98197602"]], "identity_text": "Allow roles pg_read_all_data and pg_write_all_data to read/write large objects (Nitin Motiani, Nathan Bossart) These roles are designed to allow non-super users to run pg_dump.", "commit_aliases": ["d98197602"], "source_commits": ["d98197602"], "source_entry_id": "19.0/changes/068", "db_id": "7546efde38c27c3ea4c44d31a764c942", "patch_ids": ["e8821ab803267cd9177e8f533e609ff5"], "statement_hash": "f78ec1c3d3366a20842cbbac9665c0542dda68d3cb6ea036006fe09bdf6d8e89", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-ead1db00a773cb6b", "migration": false}, {"id": "19.0-cd30210631923c00", "cves": [], "html": "<p>Allow background workers to be configured to terminate before database-level operations (Aya Iwata) <a href=\"https://postgr.es/c/f1e251be8\">\u00a7</a></p>\n<p>This allows database-level operations to complete more quickly since blocking background workers can now be terminated.</p>", "text": "Allow background workers to be configured to terminate before database-level operations (Aya Iwata) \u00a7 This allows database-level operations to complete more quickly since blocking background workers can now be terminated.", "title": "Allow background workers to be configured to terminate before database-level operations", "commits": ["f1e251be8"], "section": "Server / Server Configuration", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SERVER-CONFIG", "source_hash": "3b253bfaa88968971752451a8075a5a5a8c7c5e429269c6607cc4ca273a01257", "section_path": ["Server", "Server Configuration"], "commit_groups": [["f1e251be8"]], "identity_text": "Allow background workers to be configured to terminate before database-level operations (Aya Iwata) This allows database-level operations to complete more quickly since blocking background workers can now be terminated.", "commit_aliases": ["f1e251be8"], "source_commits": ["f1e251be8"], "source_entry_id": "19.0/changes/069", "db_id": "94d0fbd1cd265761e78acc6492d37d07", "patch_ids": ["5a78770d7da2184228f0ab9685eafd9e"], "statement_hash": "828364cf1cc33ec4d8b84f8666275ef6a299eb947bab17da8e236dec761121c1", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-cd30210631923c00", "migration": false}, {"id": "19.0-c4255bd8ab8c569f", "cves": [], "html": "<p>Allow <a href=\"/docs/19/config-setting.html\" title=\"19.1.\u00a0Setting Parameters\">server variables</a> that represent lists to be emptied by setting the value to <code>NULL</code> (Tom Lane) <a href=\"https://postgr.es/c/ff4597acd\">\u00a7</a></p>", "text": "Allow server variables that represent lists to be emptied by setting the value to NULL (Tom Lane) \u00a7", "title": "Allow server variables that represent lists to be emptied by setting the value to NULL", "commits": ["ff4597acd"], "section": "Server / Server Configuration", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SERVER-CONFIG", "source_hash": "176c9e7d279e68d5d2a7b25b882d8a4254df4dcc4d87ef46cb8580a081f3a183", "section_path": ["Server", "Server Configuration"], "commit_groups": [["ff4597acd"]], "identity_text": "Allow server variables that represent lists to be emptied by setting the value to NULL (Tom Lane)", "commit_aliases": ["ff4597acd"], "source_commits": ["ff4597acd"], "source_entry_id": "19.0/changes/070", "db_id": "a5d855186d463c3452a21cc5487e0301", "patch_ids": ["04793e08fa193196f782ebd8711ddfaf"], "statement_hash": "5816d3ee299a6bce320a65a558ad08dc9ac81ad2bcbe613dd407a003cf3c5cfd", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-c4255bd8ab8c569f", "migration": false}, {"id": "19.0-6921b97081a5ff87", "cves": [], "html": "<p>Update <a href=\"/docs/19/multibyte.html#MULTIBYTE-CHARSET-SUPPORTED\" title=\"23.3.1.\u00a0Supported Character Sets\">GB18030 encoding</a> from version 2000 to 2022 (Chao Li, Zheng Tao) <a href=\"https://postgr.es/c/5334620ee\">\u00a7</a></p>\n<p>See the commit message for compatibility details.</p>", "text": "Update GB18030 encoding from version 2000 to 2022 (Chao Li, Zheng Tao) \u00a7 See the commit message for compatibility details.", "title": "Update GB18030 encoding from version 2000 to 2022", "commits": ["5334620ee"], "section": "Server / Server Configuration", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SERVER-CONFIG", "source_hash": "ee2981026ec290bb348e89954c5b60c8d9c4483c6d0eaabe3b08b41689028924", "section_path": ["Server", "Server Configuration"], "commit_groups": [["5334620ee"]], "identity_text": "Update GB18030 encoding from version 2000 to 2022 (Chao Li, Zheng Tao) See the commit message for compatibility details.", "commit_aliases": ["5334620ee"], "source_commits": ["5334620ee"], "source_entry_id": "19.0/changes/071", "db_id": "3cb57e2d01a6cd251c7c76adc4b04cd3", "patch_ids": ["48b8aca46ccc0401e45a940f9c75b966"], "statement_hash": "594deded9e558041e87867a80a07ef79e230cbd6044de59b45a32f09dc48c45e", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-6921b97081a5ff87", "migration": false}, {"id": "19.0-a5f671b391df23ae", "cves": [], "html": "<p>Add <a href=\"/docs/19/sql-wait.html\" title=\"WAIT\"><code>WAIT</code></a> command to allow standbys to wait for <a href=\"/docs/19/wal-internals.html\" title=\"28.6.\u00a0WAL Internals\"><acronym>LSN</acronym></a> values to be written, flushed, or replayed (Kartyshov Ivan, Alexander Korotkov, Xuneng Zhou) <a href=\"https://postgr.es/c/447aae13b\">\u00a7</a> <a href=\"https://postgr.es/c/49a181b5d\">\u00a7</a></p>", "text": "Add WAIT command to allow standbys to wait for LSN values to be written, flushed, or replayed (Kartyshov Ivan, Alexander Korotkov, Xuneng Zhou) \u00a7 \u00a7", "title": "Add WAIT command to allow standbys to wait for LSN values to be written, flushed, or replayed", "commits": ["447aae13b", "49a181b5d"], "section": "Server / Streaming Replication and Recovery", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-REPLICATION", "source_hash": "7643753f4bdb59e3f5037f26f940fb5694e77c0975eb0cf59a6f9c0f6f1a166f", "section_path": ["Server", "Streaming Replication and Recovery"], "commit_groups": [["447aae13b"], ["49a181b5d"]], "identity_text": "Add WAIT command to allow standbys to wait for LSN values to be written, flushed, or replayed (Kartyshov Ivan, Alexander Korotkov, Xuneng Zhou)", "commit_aliases": ["447aae13b", "49a181b5d"], "source_commits": ["447aae13b", "49a181b5d"], "source_entry_id": "19.0/changes/072", "db_id": "8510af8d8e9389f36a5077fe08ccb6bb", "patch_ids": ["ab4333cd6963f42a7e4f86aa337dea68", "b64769bf59f0f77abf2b0a0a53a251d2"], "statement_hash": "4357b28480e90e33d602b88e9ee9bd5d1d009e4ee3b3ac8d0e4c2b48b44ae249", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-a5f671b391df23ae", "migration": false}, {"id": "19.0-c84bd47451b676b2", "cves": [], "html": "<p>Improve function <a href=\"/docs/19/functions-admin.html#PG-SYNC-REPLICATION-SLOTS\"><code>pg_sync_replication_slots()</code></a> to wait for replication synchronization completion (Ajin Cherian, Zhijie Hou) <a href=\"https://postgr.es/c/0d2d4a0ec\">\u00a7</a></p>\n<p>Previously, certain synchronization failures would not be reported.</p>", "text": "Improve function pg_sync_replication_slots() to wait for replication synchronization completion (Ajin Cherian, Zhijie Hou) \u00a7 Previously, certain synchronization failures would not be reported.", "title": "Improve function pg_sync_replication_slots() to wait for replication synchronization completion", "commits": ["0d2d4a0ec"], "section": "Server / Streaming Replication and Recovery", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-REPLICATION", "source_hash": "d681defc763334271c6eabcffe2479e61a6f41208cdbe9de86a02faf459c7d7d", "section_path": ["Server", "Streaming Replication and Recovery"], "commit_groups": [["0d2d4a0ec"]], "identity_text": "Improve function pg_sync_replication_slots() to wait for replication synchronization completion (Ajin Cherian, Zhijie Hou) Previously, certain synchronization failures would not be reported.", "commit_aliases": ["0d2d4a0ec"], "source_commits": ["0d2d4a0ec"], "source_entry_id": "19.0/changes/073", "db_id": "45a31034a4672bd881e44cbe52066ccc", "patch_ids": ["338e3e19e235235f0275be20e543213b"], "statement_hash": "425b216f04b5fec1c9f6f6ba4f6eb2025d2d607e4b08e81c19bfc08de35595e5", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-c84bd47451b676b2", "migration": false}, {"id": "19.0-980bcbd4aad35502", "cves": [], "html": "<p>Add server variable <a href=\"/docs/19/runtime-config-replication.html#GUC-WAL-SENDER-SHUTDOWN-TIMEOUT\"><code>wal_sender_shutdown_timeout</code></a> to limit replica synchronization waits during shutdown (Andrey Silitskiy, Hayato Kuroda) <a href=\"https://postgr.es/c/a8f45dee9\">\u00a7</a></p>\n<p>By default, senders still wait forever for synchronization.</p>", "text": "Add server variable wal_sender_shutdown_timeout to limit replica synchronization waits during shutdown (Andrey Silitskiy, Hayato Kuroda) \u00a7 By default, senders still wait forever for synchronization.", "title": "Add server variable wal_sender_shutdown_timeout to limit replica synchronization waits during shutdown", "commits": ["a8f45dee9"], "section": "Server / Streaming Replication and Recovery", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-REPLICATION", "source_hash": "f041fedc21d2d911223dcb4d84e0a674aa4569686f06d1f85deeea135f2a1bd5", "section_path": ["Server", "Streaming Replication and Recovery"], "commit_groups": [["a8f45dee9"]], "identity_text": "Add server variable wal_sender_shutdown_timeout to limit replica synchronization waits during shutdown (Andrey Silitskiy, Hayato Kuroda) By default, senders still wait forever for synchronization.", "commit_aliases": ["a8f45dee9"], "source_commits": ["a8f45dee9"], "source_entry_id": "19.0/changes/074", "db_id": "203a2adcedefdb3edd8d755c8e8d5ca4", "patch_ids": ["08ebe665d7e0f34213e1790cadf03a27"], "statement_hash": "9e31240cd0f7357f5add0456a9f2241263b7e5ee8e97793d13a6536581761a05", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-980bcbd4aad35502", "migration": false}, {"id": "19.0-e37b9a6a82bd3e8c", "cves": [], "html": "<p>Allow sequence values stored in subscribers to match the publisher (Vignesh C) <a href=\"https://postgr.es/c/f0b3573c3\">\u00a7</a> <a href=\"https://postgr.es/c/5509055d6\">\u00a7</a> <a href=\"https://postgr.es/c/55cefadde\">\u00a7</a></p>\n<p>This is enabled during <a href=\"/docs/19/sql-createsubscription.html\" title=\"CREATE SUBSCRIPTION\"><code>CREATE SUBSCRIPTION</code></a>, <a href=\"/docs/19/sql-altersubscription.html\" title=\"ALTER SUBSCRIPTION\"><code>ALTER SUBSCRIPTION ... REFRESH PUBLICATION</code></a>, and <a href=\"/docs/19/sql-altersubscription.html\" title=\"ALTER SUBSCRIPTION\"><code>ALTER SUBSCRIPTION ... REFRESH SEQUENCES</code></a>. The latter only updates values, not sequence existence. Function <a href=\"/docs/19/functions-sequence.html#FUNC-PG-GET-SEQUENCE-DATA\"><code>pg_get_sequence_data()</code></a> allows inspection of sequence synchronization.</p>", "text": "Allow sequence values stored in subscribers to match the publisher (Vignesh C) \u00a7 \u00a7 \u00a7 This is enabled during CREATE SUBSCRIPTION, ALTER SUBSCRIPTION ... REFRESH PUBLICATION, and ALTER SUBSCRIPTION ... REFRESH SEQUENCES. The latter only updates values, not sequence existence. Function pg_get_sequence_data() allows inspection of sequence synchronization.", "title": "Allow sequence values stored in subscribers to match the publisher", "commits": ["5509055d6", "55cefadde", "f0b3573c3"], "section": "Server / Logical Replication", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-LOGICAL", "source_hash": "9f09aa078415ea67b6079c74b3e7a62a610d470763926babca29ef1182402f68", "section_path": ["Server", "Logical Replication"], "commit_groups": [["5509055d6"], ["55cefadde"], ["f0b3573c3"]], "identity_text": "Allow sequence values stored in subscribers to match the publisher (Vignesh C) This is enabled during CREATE SUBSCRIPTION, ALTER SUBSCRIPTION ... REFRESH PUBLICATION, and ALTER SUBSCRIPTION ... REFRESH SEQUENCES. The latter only updates values, not sequence existence. Function pg_get_sequence_data() allows inspection of sequence synchronization.", "commit_aliases": ["5509055d6", "55cefadde", "f0b3573c3"], "source_commits": ["5509055d6", "55cefadde", "f0b3573c3"], "source_entry_id": "19.0/changes/075", "db_id": "1bcb34dd87395b8706657d95a9d380c8", "patch_ids": ["7396c95164ecdf33b3c5be1ac8d17db2", "75a3ccc0bc352fa3cf35ea1fcd009658", "ba5b8b155d6cfe4af0fbdc66344dd227"], "statement_hash": "c563c445b3e3a69a7e0fda4a2cd8bc8569be441cc025ac431f63a6f4608f6ff3", "relations": [{"rule": 2, "type": "related", "target": "996e3bd3bf7e98b761d055951e1f5713", "evidence": {"same_day": false, "patch_ids": ["7396c95164ecdf33b3c5be1ac8d17db2"], "ambiguous_patch_ids": ["7396c95164ecdf33b3c5be1ac8d17db2"]}}], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-e37b9a6a82bd3e8c", "migration": false}, {"id": "19.0-0b1f0184c2fe8fae", "cves": [], "html": "<p>Allow <a href=\"/docs/19/sql-createpublication.html\" title=\"CREATE PUBLICATION\"><code>CREATE</code></a>/<a href=\"/docs/19/sql-alterpublication.html\" title=\"ALTER PUBLICATION\"><code>ALTER PUBLICATION</code></a> to publish all sequences (Vignesh C, Tomas Vondra) <a href=\"https://postgr.es/c/96b378497\">\u00a7</a></p>\n<p>This is enabled with the <code>ALL SEQUENCES</code> clause.</p>", "text": "Allow CREATE/ALTER PUBLICATION to publish all sequences (Vignesh C, Tomas Vondra) \u00a7 This is enabled with the ALL SEQUENCES clause.", "title": "Allow CREATE/ALTER PUBLICATION to publish all sequences", "commits": ["96b378497"], "section": "Server / Logical Replication", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-LOGICAL", "source_hash": "9b69c386997655647beb8bc0fee83b1bab50a968b584732f01516c72429673a2", "section_path": ["Server", "Logical Replication"], "commit_groups": [["96b378497"]], "identity_text": "Allow CREATE/ALTER PUBLICATION to publish all sequences (Vignesh C, Tomas Vondra) This is enabled with the ALL SEQUENCES clause.", "commit_aliases": ["96b378497"], "source_commits": ["96b378497"], "source_entry_id": "19.0/changes/076", "db_id": "bcd2c7510de55a68e35c9f1706065cdc", "patch_ids": ["bbabaab10a2510ae96a8a0ebf6cde506"], "statement_hash": "dc7e697f8265c2a641e236dfb948a4a9c664ff306099fef7d6b46615a71f6ab7", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-0b1f0184c2fe8fae", "migration": false}, {"id": "19.0-92168a6e16a80530", "cves": [], "html": "<p>Allow <a href=\"/docs/19/sql-altersubscription.html\" title=\"ALTER SUBSCRIPTION\"><code>ALTER SUBSCRIPTION</code></a> on publications to synchronize the existence of sequences on subscribers to match the publisher (Vignesh C) <a href=\"https://postgr.es/c/f0b3573c3\">\u00a7</a></p>\n<p>This is enabled with the <code>REFRESH SEQUENCES</code> clause.</p>", "text": "Allow ALTER SUBSCRIPTION on publications to synchronize the existence of sequences on subscribers to match the publisher (Vignesh C) \u00a7 This is enabled with the REFRESH SEQUENCES clause.", "title": "Allow ALTER SUBSCRIPTION on publications to synchronize the existence of sequences on subscribers to match the publisher", "commits": ["f0b3573c3"], "section": "Server / Logical Replication", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-LOGICAL", "source_hash": "f4844fb9e2636fc38fec0e95b86852d706e56d6c194ba248889c29bee565099d", "section_path": ["Server", "Logical Replication"], "commit_groups": [["f0b3573c3"]], "identity_text": "Allow ALTER SUBSCRIPTION on publications to synchronize the existence of sequences on subscribers to match the publisher (Vignesh C) This is enabled with the REFRESH SEQUENCES clause.", "commit_aliases": ["f0b3573c3"], "source_commits": ["f0b3573c3"], "source_entry_id": "19.0/changes/077", "db_id": "996e3bd3bf7e98b761d055951e1f5713", "patch_ids": ["7396c95164ecdf33b3c5be1ac8d17db2"], "statement_hash": "ba372e33556cba1bdbe885f8e042be73fa28b81551562a51792dd829c022c4b9", "relations": [{"rule": 2, "type": "related", "target": "1bcb34dd87395b8706657d95a9d380c8", "evidence": {"same_day": false, "patch_ids": ["7396c95164ecdf33b3c5be1ac8d17db2"], "ambiguous_patch_ids": ["7396c95164ecdf33b3c5be1ac8d17db2"]}}], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-92168a6e16a80530", "migration": false}, {"id": "19.0-9ec54af5bf22444c", "cves": [], "html": "<p>Allow <a href=\"/docs/19/sql-createpublication.html\" title=\"CREATE PUBLICATION\"><code>CREATE</code></a>/<a href=\"/docs/19/sql-alterpublication.html\" title=\"ALTER PUBLICATION\"><code>ALTER PUBLICATION</code></a> to exclude some tables (Vignesh C, Shlok Kyal) <a href=\"https://postgr.es/c/493f8c643\">\u00a7</a> <a href=\"https://postgr.es/c/6b0550c45\">\u00a7</a> <a href=\"https://postgr.es/c/fd366065e\">\u00a7</a> <a href=\"https://postgr.es/c/5984ea868\">\u00a7</a></p>\n<p>This is controlled with the <code>EXCEPT</code> clause, and is useful when specifying <code>ALL TABLES</code>.</p>", "text": "Allow CREATE/ALTER PUBLICATION to exclude some tables (Vignesh C, Shlok Kyal) \u00a7 \u00a7 \u00a7 \u00a7 This is controlled with the EXCEPT clause, and is useful when specifying ALL TABLES.", "title": "Allow CREATE/ALTER PUBLICATION to exclude some tables", "commits": ["493f8c643", "5984ea868", "6b0550c45", "fd366065e"], "section": "Server / Logical Replication", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-LOGICAL", "source_hash": "0de1497e8d29c5a4aeb513914368dbc21745118d78d5885334c14eb0159ef2da", "section_path": ["Server", "Logical Replication"], "commit_groups": [["493f8c643"], ["5984ea868"], ["6b0550c45"], ["fd366065e"]], "identity_text": "Allow CREATE/ALTER PUBLICATION to exclude some tables (Vignesh C, Shlok Kyal) This is controlled with the EXCEPT clause, and is useful when specifying ALL TABLES.", "commit_aliases": ["493f8c643", "5984ea868", "6b0550c45", "fd366065e"], "source_commits": ["493f8c643", "5984ea868", "6b0550c45", "fd366065e"], "source_entry_id": "19.0/changes/078", "db_id": "1427e7989a842983af15cb751ae5f406", "patch_ids": ["0cc6456fa8230d1d1c8abfc4830c412c", "4c8d1d6d522d1fa72b10f6199add0dae", "aa0b79f04fd24f394e1bab0e0bacd569", "cb0a176eb8ce94beca71d1b54ed6b044"], "statement_hash": "24c8ffacbc9b8016d921e666d8c2941e4f7b5186c872d16d56b00b545261893f", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-9ec54af5bf22444c", "migration": false}, {"id": "19.0-4856c69d9578b624", "cves": [], "html": "<p>Add <a href=\"/docs/19/sql-createsubscription.html\" title=\"CREATE SUBSCRIPTION\"><code>CREATE</code></a>/<a href=\"/docs/19/sql-altersubscription.html\" title=\"ALTER SUBSCRIPTION\"><code>ALTER SUBSCRIPTION</code></a> setting <a href=\"/docs/19/sql-createsubscription.html#SQL-CREATESUBSCRIPTION-PARAMS-WITH-RETAIN-DEAD-TUPLES\"><code>retain_dead_tuples</code></a> to retain information needed for conflict detection (Zhijie Hou) <a href=\"https://postgr.es/c/228c37086\">\u00a7</a> <a href=\"https://postgr.es/c/0d48d393d\">\u00a7</a> <a href=\"https://postgr.es/c/a850be2fe\">\u00a7</a></p>\n<p>Also add setting <a href=\"/docs/19/sql-createsubscription.html#SQL-CREATESUBSCRIPTION-PARAMS-WITH-MAX-RETENTION-DURATION\"><code>max_retention_duration</code></a> to limit <code>retain_dead_tuples</code> retention.</p>", "text": "Add CREATE/ALTER SUBSCRIPTION setting retain_dead_tuples to retain information needed for conflict detection (Zhijie Hou) \u00a7 \u00a7 \u00a7 Also add setting max_retention_duration to limit retain_dead_tuples retention.", "title": "Add CREATE/ALTER SUBSCRIPTION setting retain_dead_tuples to retain information needed for conflict detection", "commits": ["0d48d393d", "228c37086", "a850be2fe"], "section": "Server / Logical Replication", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-LOGICAL", "source_hash": "f974b2519f95c5aac7fddc360e4b12efd1a9b3e267363b398ba7d49fc5e96945", "section_path": ["Server", "Logical Replication"], "commit_groups": [["0d48d393d"], ["228c37086"], ["a850be2fe"]], "identity_text": "Add CREATE/ALTER SUBSCRIPTION setting retain_dead_tuples to retain information needed for conflict detection (Zhijie Hou) Also add setting max_retention_duration to limit retain_dead_tuples retention.", "commit_aliases": ["0d48d393d", "228c37086", "a850be2fe"], "source_commits": ["0d48d393d", "228c37086", "a850be2fe"], "source_entry_id": "19.0/changes/079", "db_id": "dd5f5929f31ea1804fa29e15ecb4f18d", "patch_ids": ["09547163b0a75be144bc2b3b8ce00313", "853a232d0ea1e00bce5d08b65c0617bd", "a43f06af255c6d3e05fd6bd4199d1a4d"], "statement_hash": "55936f865412ede59d3c85f0b4d0644af7a4caac91a936d93d398f109a24808a", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-4856c69d9578b624", "migration": false}, {"id": "19.0-608a838a9272c2b9", "cves": [], "html": "<p>Allow <a href=\"/docs/19/sql-createsubscription.html\" title=\"CREATE SUBSCRIPTION\"><code>CREATE SUBSCRIPTION</code></a> to use <a href=\"/docs/19/postgres-fdw.html\" title=\"F.40.\u00a0postgres_fdw \u2014 access data stored in external PostgreSQL servers\">postgres_fdw</a> foreign data wrapper connection parameters (Jeff Davis) <a href=\"https://postgr.es/c/8185bb534\">\u00a7</a></p>\n<p>The connection parameters are referenced via <a href=\"/docs/19/sql-createsubscription.html\" title=\"CREATE SUBSCRIPTION\"><code>CREATE SUBSCRIPTION ... SERVER</code></a>.</p>", "text": "Allow CREATE SUBSCRIPTION to use postgres_fdw foreign data wrapper connection parameters (Jeff Davis) \u00a7 The connection parameters are referenced via CREATE SUBSCRIPTION ... SERVER.", "title": "Allow CREATE SUBSCRIPTION to use postgres_fdw foreign data wrapper connection parameters", "commits": ["8185bb534"], "section": "Server / Logical Replication", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-LOGICAL", "source_hash": "5b59a781b1ae38d4a222ffe38b2c4316f3e5eeb8064465fad551e729ace5fcc4", "section_path": ["Server", "Logical Replication"], "commit_groups": [["8185bb534"]], "identity_text": "Allow CREATE SUBSCRIPTION to use postgres-fdw foreign data wrapper connection parameters (Jeff Davis) The connection parameters are referenced via CREATE SUBSCRIPTION ... SERVER.", "commit_aliases": ["8185bb534"], "source_commits": ["8185bb534"], "source_entry_id": "19.0/changes/080", "db_id": "47e454508abec09ac7daa7c10f5ece63", "patch_ids": ["febd0018cba9b0e2ffbea6dcc5062e97"], "statement_hash": "852b9e6768aabc1f7c2ba1560b8e9081767eb0bdb63c10c78dff5f1f945a53bb", "relations": [{"rule": 2, "type": "related", "target": "5f133f6beeea4e4cfc7c17b4fc43de69", "evidence": {"same_day": false, "patch_ids": ["febd0018cba9b0e2ffbea6dcc5062e97"], "ambiguous_patch_ids": ["febd0018cba9b0e2ffbea6dcc5062e97"]}}], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-608a838a9272c2b9", "migration": false}, {"id": "19.0-a0655bf3f6727035", "cves": [], "html": "<p>When server variable <a href=\"/docs/19/runtime-config-wal.html#GUC-WAL-LEVEL\"><code>wal_level</code></a> is <code>replica</code>, allow automatic enablement of logical replication when needed (Masahiko Sawada) <a href=\"https://postgr.es/c/67c20979c\">\u00a7</a></p>\n<p>New server variable <a href=\"/docs/19/runtime-config-preset.html#GUC-EFFECTIVE-WAL-LEVEL\"><code>effective_wal_level</code></a>, application <a href=\"/docs/19/app-pgcontroldata.html\" title=\"pg_controldata\"><span>pg_controldata</span></a>, and function <a href=\"/docs/19/functions-info.html#FUNCTIONS-PG-CONTROL-CHECKPOINT\" title=\"Table\u00a09.90.\u00a0pg_control_checkpoint Output Columns\"><code>pg_control_checkpoint()</code></a> report the effective <acronym>WAL</acronym> level.</p>", "text": "When server variable wal_level is replica, allow automatic enablement of logical replication when needed (Masahiko Sawada) \u00a7 New server variable effective_wal_level, application pg_controldata, and function pg_control_checkpoint() report the effective WAL level.", "title": "When server variable wal_level is replica, allow automatic enablement of logical replication when needed", "commits": ["67c20979c"], "section": "Server / Logical Replication", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-LOGICAL", "source_hash": "f54aa21d322b5e6cb226b1ba121bfe28deaa378fb85d008cf390f29a8eca5e7f", "section_path": ["Server", "Logical Replication"], "commit_groups": [["67c20979c"]], "identity_text": "When server variable wal_level is replica, allow automatic enablement of logical replication when needed (Masahiko Sawada) New server variable effective_wal_level, application pg_controldata, and function pg_control_checkpoint() report the effective WAL level.", "commit_aliases": ["67c20979c"], "source_commits": ["67c20979c"], "source_entry_id": "19.0/changes/081", "db_id": "b156408eaee32da05c4e148c9ad5cb4e", "patch_ids": ["1b447ce3fc7c212bd0078cbf09acbada"], "statement_hash": "fb8817161b2c95ca04bc5e654fe4ff0277fffbd2d23afd38885de50ebbc5f9d3", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-a0655bf3f6727035", "migration": false}, {"id": "19.0-f03d169c21d53f20", "cves": [], "html": "<p>Allow <a href=\"/docs/19/runtime-config-replication.html#GUC-WAL-RECEIVER-TIMEOUT\"><code>wal_receiver_timeout</code></a> to be set per-subscription and user (Fujii Masao) <a href=\"https://postgr.es/c/8a6af3ad0\">\u00a7</a> <a href=\"https://postgr.es/c/fb80f388f\">\u00a7</a></p>\n<p>This allows subscribers to use different <a href=\"/docs/19/runtime-config-replication.html#GUC-WAL-RECEIVER-TIMEOUT\"><code>wal_receiver_timeout</code></a> values.</p>", "text": "Allow wal_receiver_timeout to be set per-subscription and user (Fujii Masao) \u00a7 \u00a7 This allows subscribers to use different wal_receiver_timeout values.", "title": "Allow wal_receiver_timeout to be set per-subscription and user", "commits": ["8a6af3ad0", "fb80f388f"], "section": "Server / Logical Replication", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-LOGICAL", "source_hash": "b5d367b96ca6484ffda31390e759a24cc6f2f77736a0faf4f738e66f3bc52cd0", "section_path": ["Server", "Logical Replication"], "commit_groups": [["8a6af3ad0"], ["fb80f388f"]], "identity_text": "Allow wal_receiver_timeout to be set per-subscription and user (Fujii Masao) This allows subscribers to use different wal_receiver_timeout values.", "commit_aliases": ["8a6af3ad0", "fb80f388f"], "source_commits": ["8a6af3ad0", "fb80f388f"], "source_entry_id": "19.0/changes/082", "db_id": "fff6b4278c91db1954d8a063023528f7", "patch_ids": ["4762611feb8b656d7d6576e269990dbc", "9b99cbeed684d26ae90dd81120affee5"], "statement_hash": "a975a735faf6ba59286ec0651e9050d9e76e6a39880097aca6149a2f5a313191", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-f03d169c21d53f20", "migration": false}, {"id": "19.0-ef0078fb464544b6", "cves": [], "html": "<p>Add optional pid parameter to <a href=\"/docs/19/functions-admin.html#PG-REPLICATION-ORIGIN-SESSION-SETUP\"><code>pg_replication_origin_session_setup()</code></a> to allow parallelization of <acronym>SQL</acronym>-level replication solutions (Doruk Yilmaz, Hayato Kuroda) <a href=\"https://postgr.es/c/5b148706c\">\u00a7</a></p>", "text": "Add optional pid parameter to pg_replication_origin_session_setup() to allow parallelization of SQL-level replication solutions (Doruk Yilmaz, Hayato Kuroda) \u00a7", "title": "Add optional pid parameter to pg_replication_origin_session_setup() to allow parallelization of SQL-level replication solutions", "commits": ["5b148706c"], "section": "Server / Logical Replication", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-LOGICAL", "source_hash": "6cf0cc99aa0de0d81c2c485689858b16ca6e18ff12b32acd03cdef1406881557", "section_path": ["Server", "Logical Replication"], "commit_groups": [["5b148706c"]], "identity_text": "Add optional pid parameter to pg_replication_origin_session_setup() to allow parallelization of SQL-level replication solutions (Doruk Yilmaz, Hayato Kuroda)", "commit_aliases": ["5b148706c"], "source_commits": ["5b148706c"], "source_entry_id": "19.0/changes/083", "db_id": "10e10044a97f6745d8d2a55bb0a4a335", "patch_ids": ["6f814eee337708f4b09c14341d2d4d56"], "statement_hash": "1ef80b924bc3348cedd377c2225455261f04f7fb4d562626cbaa193aee11d86b", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-ef0078fb464544b6", "migration": false}, {"id": "19.0-cabad715117bf07d", "cves": [], "html": "<p>Allow <code>GROUP BY</code> to process target list subqueries that have expressions referencing non-subquery columns (Tom Lane) <a href=\"https://postgr.es/c/415100aa6\">\u00a7</a></p>\n<p>Also fix a bug in how <a href=\"/docs/19/functions-aggregate.html#FUNCTIONS-GROUPING-TABLE\" title=\"Table\u00a09.67.\u00a0Grouping Operations\"><code>GROUPING()</code></a> handles target list subquery aliases.</p>", "text": "Allow GROUP BY to process target list subqueries that have expressions referencing non-subquery columns (Tom Lane) \u00a7 Also fix a bug in how GROUPING() handles target list subquery aliases.", "title": "Allow GROUP BY to process target list subqueries that have expressions referencing non-subquery columns", "commits": ["415100aa6"], "section": "Query Commands", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-QUERY", "source_hash": "c969b731a919d4ee9e9931d9dada8bf77efa7eb7867882237d8059c12abbfb8d", "section_path": ["Query Commands"], "commit_groups": [["415100aa6"]], "identity_text": "Allow GROUP BY to process target list subqueries that have expressions referencing non-subquery columns (Tom Lane) Also fix a bug in how GROUPING() handles target list subquery aliases.", "commit_aliases": ["415100aa6"], "source_commits": ["415100aa6"], "source_entry_id": "19.0/changes/084", "db_id": "7b826edf8ca7e11fa78fcdb327a6542f", "patch_ids": ["ff9a81072e25cbb2930ae0d12bea809e"], "statement_hash": "2eeda24a87cfc5d18569e86160dfbbe9f810adef674ac89d561dc2bccf0ab1b5", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-cabad715117bf07d", "migration": false}, {"id": "19.0-57afe957c803d839", "cves": [], "html": "<p>Allow <a href=\"/docs/19/functions-window.html\" title=\"9.23.\u00a0Window Functions\">window functions</a> to ignore NULLs with the <code>IGNORE NULLS</code>/<code>RESPECT NULLS</code> clause (Oliver Ford, Tatsuo Ishii) <a href=\"https://postgr.es/c/25a30bbd4\">\u00a7</a></p>\n<p>Supported window functions are <code>lead()</code>, <code>lag()</code>, <code>first_value()</code>, <code>last_value()</code>, and <code>nth_value()</code>.</p>", "text": "Allow window functions to ignore NULLs with the IGNORE NULLS/RESPECT NULLS clause (Oliver Ford, Tatsuo Ishii) \u00a7 Supported window functions are lead(), lag(), first_value(), last_value(), and nth_value().", "title": "Allow window functions to ignore NULLs with the IGNORE NULLS/RESPECT NULLS clause", "commits": ["25a30bbd4"], "section": "Query Commands", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-QUERY", "source_hash": "4ed93af241880bc752b234d5be9d13f0e22f846a5b267d7bcb8ab33ba7b66bd5", "section_path": ["Query Commands"], "commit_groups": [["25a30bbd4"]], "identity_text": "Allow window functions to ignore NULLs with the IGNORE NULLS/RESPECT NULLS clause (Oliver Ford, Tatsuo Ishii) Supported window functions are lead(), lag(), first_value(), last_value(), and nth_value().", "commit_aliases": ["25a30bbd4"], "source_commits": ["25a30bbd4"], "source_entry_id": "19.0/changes/085", "db_id": "fc76c9ab338b764d42fe01dbcc5fab7a", "patch_ids": ["0cbae49839826de1b9c942edadae0056"], "statement_hash": "14969c11d44f8b8e794e74c450ab41d70e5a8252162dcfc26b08db4228c7bbdd", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-57afe957c803d839", "migration": false}, {"id": "19.0-25bc9dec946e4884", "cves": [], "html": "<p>Add support for <a href=\"/docs/19/sql-insert.html\" title=\"INSERT\"><code>INSERT ... ON CONFLICT DO SELECT ... RETURNING</code></a> (Andreas Karlsson, Marko Tiikkaja, Viktor Holmberg) <a href=\"https://postgr.es/c/88327092f\">\u00a7</a></p>\n<p>This allows conflicting rows to be returned, and optionally locked with <code>FOR UPDATE</code>/<code>SHARE</code>.</p>", "text": "Add support for INSERT ... ON CONFLICT DO SELECT ... RETURNING (Andreas Karlsson, Marko Tiikkaja, Viktor Holmberg) \u00a7 This allows conflicting rows to be returned, and optionally locked with FOR UPDATE/SHARE.", "title": "Add support for INSERT ... ON CONFLICT DO SELECT ... RETURNING", "commits": ["88327092f"], "section": "Query Commands", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-QUERY", "source_hash": "a31d264335380289e428eab9a7ff3fb352cf20d8401904d1c591637d0d678504", "section_path": ["Query Commands"], "commit_groups": [["88327092f"]], "identity_text": "Add support for INSERT ... ON CONFLICT DO SELECT ... RETURNING (Andreas Karlsson, Marko Tiikkaja, Viktor Holmberg) This allows conflicting rows to be returned, and optionally locked with FOR UPDATE/SHARE.", "commit_aliases": ["88327092f"], "source_commits": ["88327092f"], "source_entry_id": "19.0/changes/086", "db_id": "e2a3b88e98a0effa6c84811c4014a0a5", "patch_ids": ["8f40ec27c413c9929a8aae9b9d6d2f9f"], "statement_hash": "12622a20ef823f3e1cd7aa5d9891b3e572a5ebac45e07240eaf4e2179df0acb7", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-25bc9dec946e4884", "migration": false}, {"id": "19.0-9d755a8f70efc1ab", "cves": [], "html": "<p>Add <a href=\"/docs/19/sql-repack.html\" title=\"REPACK\"><code>REPACK</code></a> command which replaces <a href=\"/docs/19/sql-vacuum.html\" title=\"VACUUM\"><code>VACUUM FULL</code></a> and <a href=\"/docs/19/sql-cluster.html\" title=\"CLUSTER\"><code>CLUSTER</code></a> (Antonin Houska) <a href=\"https://postgr.es/c/ac58465e0\">\u00a7</a></p>\n<p>The two former commands did similar things, but with confusing names, so unify them as <a href=\"/docs/19/sql-repack.html\" title=\"REPACK\"><code>REPACK</code></a>. The old commands have been retained for compatibility.</p>", "text": "Add REPACK command which replaces VACUUM FULL and CLUSTER (Antonin Houska) \u00a7 The two former commands did similar things, but with confusing names, so unify them as REPACK. The old commands have been retained for compatibility.", "title": "Add REPACK command which replaces VACUUM FULL and CLUSTER", "commits": ["ac58465e0"], "section": "Utility Commands", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-UTILITY", "source_hash": "630cec51a1602d8623f7f85c8f4365837bb6923352b6c1aafca77489a08c6cdf", "section_path": ["Utility Commands"], "commit_groups": [["ac58465e0"]], "identity_text": "Add REPACK command which replaces VACUUM FULL and CLUSTER (Antonin Houska) The two former commands did similar things, but with confusing names, so unify them as REPACK. The old commands have been retained for compatibility.", "commit_aliases": ["ac58465e0"], "source_commits": ["ac58465e0"], "source_entry_id": "19.0/changes/087", "db_id": "8f43f4e6977627cde85434089db0dcbe", "patch_ids": ["72720531b76f8f1ae5f8cfe24294dead"], "statement_hash": "8aa8d080a5763457851b51f1b6e3fbad9975b3f716044e9630d4dfcaa39b4069", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-9d755a8f70efc1ab", "migration": false}, {"id": "19.0-203ed32b77eb7ce9", "cves": [], "html": "<p>Allow <a href=\"/docs/19/sql-repack.html\" title=\"REPACK\"><code>REPACK</code></a> to rebuild tables without access-exclusive locking (Antonin Houska, Mihail Nikalayeu, \u00c1lvaro Herrera) <a href=\"https://postgr.es/c/28d534e2a\">\u00a7</a> <a href=\"https://postgr.es/c/8fb95a8ab\">\u00a7</a> <a href=\"https://postgr.es/c/e76d8c749\">\u00a7</a></p>\n<p>This is enabled via the <code>CONCURRENTLY</code> option. Server variable <a href=\"/docs/19/runtime-config-replication.html#GUC-MAX-REPACK-REPLICATION-SLOTS\"><code>max_repack_replication_slots</code></a> was also added.</p>", "text": "Allow REPACK to rebuild tables without access-exclusive locking (Antonin Houska, Mihail Nikalayeu, \u00c1lvaro Herrera) \u00a7 \u00a7 \u00a7 This is enabled via the CONCURRENTLY option. Server variable max_repack_replication_slots was also added.", "title": "Allow REPACK to rebuild tables without access-exclusive locking", "commits": ["28d534e2a", "8fb95a8ab", "e76d8c749"], "section": "Utility Commands", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-UTILITY", "source_hash": "081c3bafd32fe09532f32fb03fe4d58c1641f1f052e558c04f89901ae5b9223c", "section_path": ["Utility Commands"], "commit_groups": [["28d534e2a"], ["8fb95a8ab"], ["e76d8c749"]], "identity_text": "Allow REPACK to rebuild tables without access-exclusive locking (Antonin Houska, Mihail Nikalayeu, \u00c1lvaro Herrera) This is enabled via the CONCURRENTLY option. Server variable max_repack_replication_slots was also added.", "commit_aliases": ["28d534e2a", "8fb95a8ab", "e76d8c749"], "source_commits": ["28d534e2a", "8fb95a8ab", "e76d8c749"], "source_entry_id": "19.0/changes/088", "db_id": "4fa6b1815627146fe52e9fa63e15bab3", "patch_ids": ["5470d4b92cfc988f8d5b09d391acfc28", "92693606a33231c9a1b5a5ea7331dc3c", "ed58e7ae4e17679a610cb766e27eabdb"], "statement_hash": "75e285708c4cb3bba55af078faf2ad320270e52b74c12f70f18246f26317851f", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-203ed32b77eb7ce9", "migration": false}, {"id": "19.0-3f5b5d0828486092", "cves": [], "html": "<p>Allow <a href=\"/docs/19/sql-grant.html\" title=\"GRANT\"><code>GRANT</code></a>/<a href=\"/docs/19/sql-revoke.html\" title=\"REVOKE\"><code>REVOKE</code></a> to specify the effective role performing the privileges adjustment (Nathan Bossart, Tom Lane) <a href=\"https://postgr.es/c/dd1398f13\">\u00a7</a></p>\n<p>The <code>GRANTED BY</code> clause controls this.</p>", "text": "Allow GRANT/REVOKE to specify the effective role performing the privileges adjustment (Nathan Bossart, Tom Lane) \u00a7 The GRANTED BY clause controls this.", "title": "Allow GRANT/REVOKE to specify the effective role performing the privileges adjustment", "commits": ["dd1398f13"], "section": "Utility Commands", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-UTILITY", "source_hash": "3a2dee1a3fd7222bc6f27819d0deb2413a9634a278d7dce7f891c6af8f2cd504", "section_path": ["Utility Commands"], "commit_groups": [["dd1398f13"]], "identity_text": "Allow GRANT/REVOKE to specify the effective role performing the privileges adjustment (Nathan Bossart, Tom Lane) The GRANTED BY clause controls this.", "commit_aliases": ["dd1398f13"], "source_commits": ["dd1398f13"], "source_entry_id": "19.0/changes/089", "db_id": "1d507c7d53dc5fc242fe1e2c4534361a", "patch_ids": ["5552f58b479fba69c769bcdfa079b225"], "statement_hash": "32de521e03d44fc8a9ad53f5deb3dbfb0c896a52d61a7efe01bbd3393a281b40", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-3f5b5d0828486092", "migration": false}, {"id": "19.0-2cfde0e1a845ece4", "cves": [], "html": "<p>Support forward references in <code>FOREIGN KEY</code> constraint clauses within <a href=\"/docs/19/sql-createschema.html\" title=\"CREATE SCHEMA\"><code>CREATE SCHEMA</code></a> (Jian He, Tom Lane) <a href=\"https://postgr.es/c/404db8f9e\">\u00a7</a></p>", "text": "Support forward references in FOREIGN KEY constraint clauses within CREATE SCHEMA (Jian He, Tom Lane) \u00a7", "title": "Support forward references in FOREIGN KEY constraint clauses within CREATE SCHEMA", "commits": ["404db8f9e"], "section": "Utility Commands", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-UTILITY", "source_hash": "d92be051c84d6e86ddc18f18fd59abc10cd6814ab671684806459bd44e452a0f", "section_path": ["Utility Commands"], "commit_groups": [["404db8f9e"]], "identity_text": "Support forward references in FOREIGN KEY constraint clauses within CREATE SCHEMA (Jian He, Tom Lane)", "commit_aliases": ["404db8f9e"], "source_commits": ["404db8f9e"], "source_entry_id": "19.0/changes/090", "db_id": "a030d232dae44097057e87c961e0d719", "patch_ids": ["417529d51611637068ea91e3a5598101"], "statement_hash": "0d2d12d555ba647d0361bc0b3997cccd7bbcb911e591eae0a057ee864d34eaca", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-2cfde0e1a845ece4", "migration": false}, {"id": "19.0-fe9de6a6a01d4e1d", "cves": [], "html": "<p>Allow <a href=\"/docs/19/sql-checkpoint.html\" title=\"CHECKPOINT\"><code>CHECKPOINT</code></a> to accept a list of options (Christoph Berg) <a href=\"https://postgr.es/c/a4f126516\">\u00a7</a> <a href=\"https://postgr.es/c/2f698d7f4\">\u00a7</a> <a href=\"https://postgr.es/c/8d33fbacb\">\u00a7</a></p>\n<p>Supported options are <code>MODE</code> and <code>FLUSH_UNLOGGED</code>.</p>", "text": "Allow CHECKPOINT to accept a list of options (Christoph Berg) \u00a7 \u00a7 \u00a7 Supported options are MODE and FLUSH_UNLOGGED.", "title": "Allow CHECKPOINT to accept a list of options", "commits": ["2f698d7f4", "8d33fbacb", "a4f126516"], "section": "Utility Commands", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-UTILITY", "source_hash": "d644ff2d10dc9c00ea6bdccc7367cb8353977e582a571dd09c11613d4db1e645", "section_path": ["Utility Commands"], "commit_groups": [["2f698d7f4"], ["8d33fbacb"], ["a4f126516"]], "identity_text": "Allow CHECKPOINT to accept a list of options (Christoph Berg) Supported options are MODE and FLUSH_UNLOGGED.", "commit_aliases": ["2f698d7f4", "8d33fbacb", "a4f126516"], "source_commits": ["2f698d7f4", "8d33fbacb", "a4f126516"], "source_entry_id": "19.0/changes/091", "db_id": "16c0c2ab318ab0b6abb8481c56eb3c73", "patch_ids": ["6530b6dd276ce99090984339db4f966a", "b2ea7f4532560e0f93f946bd1ad65cf3", "d5e89446328e23bde303f46ae736809a"], "statement_hash": "ae2ff63033ae887ee2e199bed6feb1e7647b6ee074f37b1e0ba6acfa534bfd7a", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-fe9de6a6a01d4e1d", "migration": false}, {"id": "19.0-e4de4e1158bcd0d4", "cves": [], "html": "<p>Add <code>CONNECTION</code> clause to <a href=\"/docs/19/sql-createforeigndatawrapper.html\" title=\"CREATE FOREIGN DATA WRAPPER\"><code>CREATE FOREIGN DATA WRAPPER</code></a> to specify a function to be called for subscription connection parameters (Jeff Davis, Noriyoshi Shinoda) <a href=\"https://postgr.es/c/8185bb534\">\u00a7</a> <a href=\"https://postgr.es/c/90630ec42\">\u00a7</a></p>", "text": "Add CONNECTION clause to CREATE FOREIGN DATA WRAPPER to specify a function to be called for subscription connection parameters (Jeff Davis, Noriyoshi Shinoda) \u00a7 \u00a7", "title": "Add CONNECTION clause to CREATE FOREIGN DATA WRAPPER to specify a function to be called for subscription connection parameters", "commits": ["8185bb534", "90630ec42"], "section": "Utility Commands", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-UTILITY", "source_hash": "2331510708ff3568fdc62c43abaa6ebd99180a57a890a61d72b21b15de2256d2", "section_path": ["Utility Commands"], "commit_groups": [["8185bb534"], ["90630ec42"]], "identity_text": "Add CONNECTION clause to CREATE FOREIGN DATA WRAPPER to specify a function to be called for subscription connection parameters (Jeff Davis, Noriyoshi Shinoda)", "commit_aliases": ["8185bb534", "90630ec42"], "source_commits": ["8185bb534", "90630ec42"], "source_entry_id": "19.0/changes/092", "db_id": "5f133f6beeea4e4cfc7c17b4fc43de69", "patch_ids": ["faf351cd42e202b83aa8a85635d9341f", "febd0018cba9b0e2ffbea6dcc5062e97"], "statement_hash": "39146283f620f6e16d5d9cbd8d10a71b483147562f21949a6306fc1cfa4756c5", "relations": [{"rule": 2, "type": "related", "target": "47e454508abec09ac7daa7c10f5ece63", "evidence": {"same_day": false, "patch_ids": ["febd0018cba9b0e2ffbea6dcc5062e97"], "ambiguous_patch_ids": ["febd0018cba9b0e2ffbea6dcc5062e97"]}}], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-e4de4e1158bcd0d4", "migration": false}, {"id": "19.0-7050a15ef5a7cd78", "cves": [], "html": "<p>Add <code>SUPPORT</code> clause to <a href=\"/docs/19/sql-createaggregate.html\" title=\"CREATE AGGREGATE\"><code>CREATE AGGREGATE</code></a> so extensions can specify support functions to optimize aggregate calls (Tom Lane) <a href=\"https://postgr.es/c/165aa5040\">\u00a7</a></p>", "text": "Add SUPPORT clause to CREATE AGGREGATE so extensions can specify support functions to optimize aggregate calls (Tom Lane) \u00a7", "title": "Add SUPPORT clause to CREATE AGGREGATE so extensions can specify support functions to optimize aggregate calls", "commits": ["165aa5040"], "section": "Utility Commands", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-UTILITY", "source_hash": "4adbfa7e4ed74b2d875ed4083192fb236db8707a0c5c8528784ebe9d7ecc2215", "section_path": ["Utility Commands"], "commit_groups": [["165aa5040"]], "identity_text": "Add SUPPORT clause to CREATE AGGREGATE so extensions can specify support functions to optimize aggregate calls (Tom Lane)", "commit_aliases": ["165aa5040"], "source_commits": ["165aa5040"], "source_entry_id": "19.0/changes/093", "db_id": "7f34663e8a95242f473169207150d9a7", "patch_ids": ["1242e00c743fcef88eeae6549eac1176"], "statement_hash": "db54531e43c8455dcea0bd59907b76c1a88adc0cc3f2394613a019143d573d7f", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-7050a15ef5a7cd78", "migration": false}, {"id": "19.0-ee278d4c9a6ca3a7", "cves": [], "html": "<p>Add memory usage and parallelism reporting to <a href=\"/docs/19/sql-vacuum.html\" title=\"VACUUM\"><code>VACUUM (VERBOSE)</code></a> and <a href=\"/docs/19/routine-vacuuming.html#AUTOVACUUM\" title=\"24.1.6.\u00a0The Autovacuum Daemon\">autovacuum</a> logs (Tatsuya Kawata, Daniil Davydov) <a href=\"https://postgr.es/c/736f754ee\">\u00a7</a> <a href=\"https://postgr.es/c/adcdbe938\">\u00a7</a></p>", "text": "Add memory usage and parallelism reporting to VACUUM (VERBOSE) and autovacuum logs (Tatsuya Kawata, Daniil Davydov) \u00a7 \u00a7", "title": "Add memory usage and parallelism reporting to VACUUM (VERBOSE) and autovacuum logs", "commits": ["736f754ee", "adcdbe938"], "section": "Utility Commands", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-UTILITY", "source_hash": "f38585cef8c7f3c0270764dfc3e34c97746d6937951213f4b671a16953c738bb", "section_path": ["Utility Commands"], "commit_groups": [["736f754ee"], ["adcdbe938"]], "identity_text": "Add memory usage and parallelism reporting to VACUUM (VERBOSE) and autovacuum logs (Tatsuya Kawata, Daniil Davydov)", "commit_aliases": ["736f754ee", "adcdbe938"], "source_commits": ["736f754ee", "adcdbe938"], "source_entry_id": "19.0/changes/094", "db_id": "0cdc44f7c352ccf972b3f4e4cab7ec3a", "patch_ids": ["5eb6a0527d43cf5479bc4c9a473687e4", "c374375304847fc9131392904a492452"], "statement_hash": "0b0bdf3d64a37736b65e0ec58cc8802287e0f9201ecf288c3d66011967c83d74", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-ee278d4c9a6ca3a7", "migration": false}, {"id": "19.0-463f77e05b28a94e", "cves": [], "html": "<p>Allow <a href=\"/docs/19/sql-altertable.html\" title=\"ALTER TABLE\"><code>ALTER TABLE ALTER CONSTRAINT ... [NOT] ENFORCED</code></a> for <code>CHECK</code> constraints (Jian He) <a href=\"https://postgr.es/c/342051d73\">\u00a7</a></p>\n<p>Previously enforcement changes were only supported for foreign key constraints.</p>", "text": "Allow ALTER TABLE ALTER CONSTRAINT ... [NOT] ENFORCED for CHECK constraints (Jian He) \u00a7 Previously enforcement changes were only supported for foreign key constraints.", "title": "Allow ALTER TABLE ALTER CONSTRAINT ... [NOT] ENFORCED for CHECK constraints", "commits": ["342051d73"], "section": "Utility Commands / Constraints", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-CONSTRAINTS", "source_hash": "59987e86b56cfee4e8c516b2af161abe361b198473f75625fa488ce050eda323", "section_path": ["Utility Commands", "Constraints"], "commit_groups": [["342051d73"]], "identity_text": "Allow ALTER TABLE ALTER CONSTRAINT ... [NOT] ENFORCED for CHECK constraints (Jian He) Previously enforcement changes were only supported for foreign key constraints.", "commit_aliases": ["342051d73"], "source_commits": ["342051d73"], "source_entry_id": "19.0/changes/095", "db_id": "55915420081329c439adbcc41b75c155", "patch_ids": ["250565e38eddc1be4c0b9329b8d17ed9"], "statement_hash": "08ad7dcf1b13ccb659e6746561b917ccdb0988d6f6241b71489006dc339388cc", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-463f77e05b28a94e", "migration": false}, {"id": "19.0-567e60cb83ffaea3", "cves": [], "html": "<p>Allow <a href=\"/docs/19/sql-altertable.html\" title=\"ALTER TABLE\"><code>ALTER TABLE ... COLUMN SET EXPRESSION</code></a> to succeed on virtual columns with <code>CHECK</code> constraints (Jian He) <a href=\"https://postgr.es/c/f80bedd52\">\u00a7</a></p>\n<p>This was previously prohibited.</p>", "text": "Allow ALTER TABLE ... COLUMN SET EXPRESSION to succeed on virtual columns with CHECK constraints (Jian He) \u00a7 This was previously prohibited.", "title": "Allow ALTER TABLE ... COLUMN SET EXPRESSION to succeed on virtual columns with CHECK constraints", "commits": ["f80bedd52"], "section": "Utility Commands / Constraints", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-CONSTRAINTS", "source_hash": "14269a8de80a7ac83d0de53334935a73013e09e60261599a0695a77127c07d37", "section_path": ["Utility Commands", "Constraints"], "commit_groups": [["f80bedd52"]], "identity_text": "Allow ALTER TABLE ... COLUMN SET EXPRESSION to succeed on virtual columns with CHECK constraints (Jian He) This was previously prohibited.", "commit_aliases": ["f80bedd52"], "source_commits": ["f80bedd52"], "source_entry_id": "19.0/changes/096", "db_id": "719650dd55687b1d229757e6fc2b2d76", "patch_ids": ["638ada60613f5b5c1d2e3938cfc3c57d"], "statement_hash": "b7e3c7509d7d7a6f40c833dc8faf0c1b6189d02d88ec226ae4acae22ccc46dde", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-567e60cb83ffaea3", "migration": false}, {"id": "19.0-9ef3abbb86312705", "cves": [], "html": "<p>Allow multiple headers lines to be skipped by <a href=\"/docs/19/sql-copy.html\" title=\"COPY\"><code>COPY FROM</code></a> (Shinya Kato, Fujii Masao) <a href=\"https://postgr.es/c/bc2f348e8\">\u00a7</a></p>\n<p>Previously only a single header line could be skipped.</p>", "text": "Allow multiple headers lines to be skipped by COPY FROM (Shinya Kato, Fujii Masao) \u00a7 Previously only a single header line could be skipped.", "title": "Allow multiple headers lines to be skipped by COPY FROM", "commits": ["bc2f348e8"], "section": "Utility Commands / COPY", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-COPY", "source_hash": "a5ea76193731276bde664acb67390f8ca66e4b28e5fe6f2356bd94e59c267a28", "section_path": ["Utility Commands", "COPY"], "commit_groups": [["bc2f348e8"]], "identity_text": "Allow multiple headers lines to be skipped by COPY FROM (Shinya Kato, Fujii Masao) Previously only a single header line could be skipped.", "commit_aliases": ["bc2f348e8"], "source_commits": ["bc2f348e8"], "source_entry_id": "19.0/changes/097", "db_id": "9e69371e828ab9188c2acff849734796", "patch_ids": ["05e2d08f24f6389cee7e47f4b967632f"], "statement_hash": "8b018f13b141716433f2b822df1fff84f0687b9057f813d40f36d04cf818f38c", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-9ef3abbb86312705", "migration": false}, {"id": "19.0-34306d3cbc671e9f", "cves": [], "html": "<p>Allow <a href=\"/docs/19/sql-copy.html\" title=\"COPY\"><code>COPY FROM</code></a> to set invalid input values to <code>NULL</code> (Jian He, Kirill Reshke) <a href=\"https://postgr.es/c/2a525cc97\">\u00a7</a></p>\n<p>This is done using the <a href=\"/docs/19/sql-copy.html\" title=\"COPY\"><code>COPY</code></a> option <code>ON_ERROR SET_NULL</code>.</p>", "text": "Allow COPY FROM to set invalid input values to NULL (Jian He, Kirill Reshke) \u00a7 This is done using the COPY option ON_ERROR SET_NULL.", "title": "Allow COPY FROM to set invalid input values to NULL", "commits": ["2a525cc97"], "section": "Utility Commands / COPY", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-COPY", "source_hash": "411b5af6288019d0864a318b65117743e196f4be2b09d7b3b6e3d5b25b3c076c", "section_path": ["Utility Commands", "COPY"], "commit_groups": [["2a525cc97"]], "identity_text": "Allow COPY FROM to set invalid input values to NULL (Jian He, Kirill Reshke) This is done using the COPY option ON_ERROR SET_NULL.", "commit_aliases": ["2a525cc97"], "source_commits": ["2a525cc97"], "source_entry_id": "19.0/changes/098", "db_id": "21a312a7b331df0eb0ab4f6b89ed7a9a", "patch_ids": ["8602a6751d550c8bec8f9776978131c9"], "statement_hash": "37b776ff346f7746bbc976b9ff80fa7f92e77f43be6e8fcf030e58963a57a4f9", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-34306d3cbc671e9f", "migration": false}, {"id": "19.0-d4582659a92dd42e", "cves": [], "html": "<p>Allow <a href=\"/docs/19/sql-copy.html\" title=\"COPY\"><code>COPY TO</code></a> to output <acronym>JSON</acronym> format (Joe Conway, Jian He, Andrew Dunstan) <a href=\"https://postgr.es/c/7dadd38cd\">\u00a7</a> <a href=\"https://postgr.es/c/4c0390ac5\">\u00a7</a></p>\n<p><acronym>JSON</acronym> output can also be a single <acronym>JSON</acronym> array using the <a href=\"/docs/19/sql-copy.html\" title=\"COPY\"><code>COPY</code></a> option <code>FORCE_ARRAY</code>.</p>", "text": "Allow COPY TO to output JSON format (Joe Conway, Jian He, Andrew Dunstan) \u00a7 \u00a7 JSON output can also be a single JSON array using the COPY option FORCE_ARRAY.", "title": "Allow COPY TO to output JSON format", "commits": ["4c0390ac5", "7dadd38cd"], "section": "Utility Commands / COPY", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-COPY", "source_hash": "ab055af4a41ee3cf8d0b6f8f004d9489d1ec3215b4c8114329921042bbba57fe", "section_path": ["Utility Commands", "COPY"], "commit_groups": [["4c0390ac5"], ["7dadd38cd"]], "identity_text": "Allow COPY TO to output JSON format (Joe Conway, Jian He, Andrew Dunstan) JSON output can also be a single JSON array using the COPY option FORCE_ARRAY.", "commit_aliases": ["4c0390ac5", "7dadd38cd"], "source_commits": ["4c0390ac5", "7dadd38cd"], "source_entry_id": "19.0/changes/099", "db_id": "e626db65bdfc5b639ca4b0cbe3b065b4", "patch_ids": ["1003eee16009c6b31935c95d41625114", "6044d610c82a493183f9c7c70d296766"], "statement_hash": "df60771a015c095320f31f7048d459f41332f9116fc2e2044f18cca22d561d55", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-d4582659a92dd42e", "migration": false}, {"id": "19.0-db855ce12053a0e3", "cves": [], "html": "<p>Allow <a href=\"/docs/19/sql-copy.html\" title=\"COPY\"><code>COPY TO</code></a> to process partitioned tables (Jian He, Ajin Cherian) <a href=\"https://postgr.es/c/4bea91f21\">\u00a7</a> <a href=\"https://postgr.es/c/266543a62\">\u00a7</a></p>\n<p>Previously <a href=\"/docs/19/sql-copy.html\" title=\"COPY\"><code>COPY (SELECT ...)</code></a> had to be used to output partitioned tables. This also improves logical replication table synchronization.</p>", "text": "Allow COPY TO to process partitioned tables (Jian He, Ajin Cherian) \u00a7 \u00a7 Previously COPY (SELECT ...) had to be used to output partitioned tables. This also improves logical replication table synchronization.", "title": "Allow COPY TO to process partitioned tables", "commits": ["266543a62", "4bea91f21"], "section": "Utility Commands / COPY", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-COPY", "source_hash": "7a4ba98538e27af3bd81def2671ad53f82e42a871643d389b015310364eac4ca", "section_path": ["Utility Commands", "COPY"], "commit_groups": [["266543a62"], ["4bea91f21"]], "identity_text": "Allow COPY TO to process partitioned tables (Jian He, Ajin Cherian) Previously COPY (SELECT ...) had to be used to output partitioned tables. This also improves logical replication table synchronization.", "commit_aliases": ["266543a62", "4bea91f21"], "source_commits": ["266543a62", "4bea91f21"], "source_entry_id": "19.0/changes/100", "db_id": "8df18db3c5920c2d3bf566be085cbf59", "patch_ids": ["c5244890a1aa2e88fa88e9e30eae7984", "eb19ba34134e942c28c15630c0426e62"], "statement_hash": "dccc14b6c8331925af51c0c6ff36c27bd88b1cbf57b993533a80d9344d85a4a0", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-db855ce12053a0e3", "migration": false}, {"id": "19.0-1e317cb48b92fd72", "cves": [], "html": "<p>Add <a href=\"/docs/19/sql-explain.html\" title=\"EXPLAIN\"><code>EXPLAIN ANALYZE</code></a> option <code>IO</code> to report asynchronous IO activity (Tomas Vondra) <a href=\"https://postgr.es/c/681daed93\">\u00a7</a> <a href=\"https://postgr.es/c/3b1117d6e\">\u00a7</a> <a href=\"https://postgr.es/c/e157fe6f7\">\u00a7</a></p>", "text": "Add EXPLAIN ANALYZE option IO to report asynchronous IO activity (Tomas Vondra) \u00a7 \u00a7 \u00a7", "title": "Add EXPLAIN ANALYZE option IO to report asynchronous IO activity", "commits": ["3b1117d6e", "681daed93", "e157fe6f7"], "section": "Utility Commands / EXPLAIN", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-EXPLAIN", "source_hash": "f8980607d55d286c44c2a04d3b3a9922e326c46c929064a5dadafbd369927376", "section_path": ["Utility Commands", "EXPLAIN"], "commit_groups": [["3b1117d6e"], ["681daed93"], ["e157fe6f7"]], "identity_text": "Add EXPLAIN ANALYZE option IO to report asynchronous IO activity (Tomas Vondra)", "commit_aliases": ["3b1117d6e", "681daed93", "e157fe6f7"], "source_commits": ["3b1117d6e", "681daed93", "e157fe6f7"], "source_entry_id": "19.0/changes/101", "db_id": "c9b9920fd71621cadfa3de7d17106ca3", "patch_ids": ["745c7a44fb371afe8c071e28f06f4a6c", "af71abcd051d247322ca2cd12e6de750", "b9076b39125167b5cdcc0e73079d6a8e"], "statement_hash": "dbff7373edcc5dd7d5c612c6fd3bca3cb5adab38c509ca897095c97b0285c01d", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-1e317cb48b92fd72", "migration": false}, {"id": "19.0-19778b7df667f904", "cves": [], "html": "<p>Add reporting of <acronym>WAL</acronym> <a href=\"/docs/19/runtime-config-wal.html#GUC-FULL-PAGE-WRITES\">full-page write</a> bytes to <a href=\"/docs/19/sql-explain.html\" title=\"EXPLAIN\"><code>EXPLAIN (ANALYZE, WAL)</code></a> output (Shinya Kato) <a href=\"https://postgr.es/c/5ab0b6a24\">\u00a7</a></p>", "text": "Add reporting of WAL full-page write bytes to EXPLAIN (ANALYZE, WAL) output (Shinya Kato) \u00a7", "title": "Add reporting of WAL full-page write bytes to EXPLAIN (ANALYZE, WAL) output", "commits": ["5ab0b6a24"], "section": "Utility Commands / EXPLAIN", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-EXPLAIN", "source_hash": "81d3d84f5f8e85de761bdae08c324c764f3b282aaf75f9abe1031e30be1efcf3", "section_path": ["Utility Commands", "EXPLAIN"], "commit_groups": [["5ab0b6a24"]], "identity_text": "Add reporting of WAL full-page write bytes to EXPLAIN (ANALYZE, WAL) output (Shinya Kato)", "commit_aliases": ["5ab0b6a24"], "source_commits": ["5ab0b6a24"], "source_entry_id": "19.0/changes/102", "db_id": "94538c466d0b9338c05a6dea60115cfd", "patch_ids": ["0b3579e25d92b2b18f9325522f393db7"], "statement_hash": "42a88618a9feab76a812fbe5b2bf9abc433def60f07cb5e9931d660906fe19e9", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-19778b7df667f904", "migration": false}, {"id": "19.0-c7aca9803b28ccfb", "cves": [], "html": "<p>Add Memoize cache and lookup estimates to <a href=\"/docs/19/sql-explain.html\" title=\"EXPLAIN\"><code>EXPLAIN</code></a> output (Ilia Evdokimov, Lukas Fittl) <a href=\"https://postgr.es/c/4bc62b868\">\u00a7</a></p>\n<p>This can show why Memoize was chosen.</p>", "text": "Add Memoize cache and lookup estimates to EXPLAIN output (Ilia Evdokimov, Lukas Fittl) \u00a7 This can show why Memoize was chosen.", "title": "Add Memoize cache and lookup estimates to EXPLAIN output", "commits": ["4bc62b868"], "section": "Utility Commands / EXPLAIN", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-EXPLAIN", "source_hash": "7ec0d59ce6bd88b207b85ec2706b87f29bdb673ed9807ee038c96b08f6907cb2", "section_path": ["Utility Commands", "EXPLAIN"], "commit_groups": [["4bc62b868"]], "identity_text": "Add Memoize cache and lookup estimates to EXPLAIN output (Ilia Evdokimov, Lukas Fittl) This can show why Memoize was chosen.", "commit_aliases": ["4bc62b868"], "source_commits": ["4bc62b868"], "source_entry_id": "19.0/changes/103", "db_id": "200882adc883b5bad6075b2ec5fa4eba", "patch_ids": ["362813dc72ebd4c49399fe5c80a3b8c0"], "statement_hash": "8f74f54c172bca3c1e922da2e18aae3836cd815d80f79316224dfd9b1c0d5ca4", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-c7aca9803b28ccfb", "migration": false}, {"id": "19.0-451f6de8e1fa93f7", "cves": [], "html": "<p>Add the 64-bit unsigned data type <a href=\"/docs/19/datatype-oid.html\" title=\"8.19.\u00a0Object Identifier Types\"><code>oid8</code></a> (Michael Paquier) <a href=\"https://postgr.es/c/b139bd3b6\">\u00a7</a></p>", "text": "Add the 64-bit unsigned data type oid8 (Michael Paquier) \u00a7", "title": "Add the 64-bit unsigned data type oid8", "commits": ["b139bd3b6"], "section": "Data Types", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-DATATYPES", "source_hash": "bb9f122a829c2adbe907b7ce615e5881637a55dd3511e8957a1d3ace8d9abd0a", "section_path": ["Data Types"], "commit_groups": [["b139bd3b6"]], "identity_text": "Add the 64-bit unsigned data type oid8 (Michael Paquier)", "commit_aliases": ["b139bd3b6"], "source_commits": ["b139bd3b6"], "source_entry_id": "19.0/changes/104", "db_id": "825a8973d33b00834597d9b46e29d115", "patch_ids": ["e0b7170809704e61b7933051991bf328"], "statement_hash": "201885b92aa138aa45d3ce8ed717f2e400c3924a7053d55fdd541a3c9fd94a94", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-451f6de8e1fa93f7", "migration": false}, {"id": "19.0-367c4d02b8f12f93", "cves": [], "html": "<p>Add more <a href=\"/docs/19/datatype-json.html#DATATYPE-JSONPATH\" title=\"8.14.7.\u00a0jsonpath Type\"><code>jsonpath</code></a> string methods (Florents Tselai, David E. Wheeler) <a href=\"https://postgr.es/c/bd4f879a9\">\u00a7</a></p>\n<p>They are <a href=\"/docs/19/functions-json.html#FUNCTIONS-SQLJSON-PATH-OPERATORS\" title=\"9.17.2.3.\u00a0SQL/JSON Path Operators and Methods\"><code>ltrim()</code></a>, <a href=\"/docs/19/functions-json.html#FUNCTIONS-SQLJSON-PATH-OPERATORS\" title=\"9.17.2.3.\u00a0SQL/JSON Path Operators and Methods\"><code>rtrim()</code></a>, <a href=\"/docs/19/functions-json.html#FUNCTIONS-SQLJSON-PATH-OPERATORS\" title=\"9.17.2.3.\u00a0SQL/JSON Path Operators and Methods\"><code>btrim()</code></a>, <a href=\"/docs/19/functions-json.html#FUNCTIONS-SQLJSON-PATH-OPERATORS\" title=\"9.17.2.3.\u00a0SQL/JSON Path Operators and Methods\"><code>lower()</code></a>, <a href=\"/docs/19/functions-json.html#FUNCTIONS-SQLJSON-PATH-OPERATORS\" title=\"9.17.2.3.\u00a0SQL/JSON Path Operators and Methods\"><code>upper()</code></a>, <a href=\"/docs/19/functions-json.html#FUNCTIONS-SQLJSON-PATH-OPERATORS\" title=\"9.17.2.3.\u00a0SQL/JSON Path Operators and Methods\"><code>initcap()</code></a>, <a href=\"/docs/19/functions-json.html#FUNCTIONS-SQLJSON-PATH-OPERATORS\" title=\"9.17.2.3.\u00a0SQL/JSON Path Operators and Methods\"><code>replace()</code></a>, and <a href=\"/docs/19/functions-json.html#FUNCTIONS-SQLJSON-PATH-OPERATORS\" title=\"9.17.2.3.\u00a0SQL/JSON Path Operators and Methods\"><code>split_part()</code></a>. These are immutable like their non-<acronym>JSON</acronym> string variants.</p>", "text": "Add more jsonpath string methods (Florents Tselai, David E. Wheeler) \u00a7 They are ltrim(), rtrim(), btrim(), lower(), upper(), initcap(), replace(), and split_part(). These are immutable like their non-JSON string variants.", "title": "Add more jsonpath string methods", "commits": ["bd4f879a9"], "section": "Data Types", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-DATATYPES", "source_hash": "2cf3c11635bfb1c2cd384a1b312c49b6516d00eca48ecb45b545269d26488dc6", "section_path": ["Data Types"], "commit_groups": [["bd4f879a9"]], "identity_text": "Add more jsonpath string methods (Florents Tselai, David E. Wheeler) They are ltrim(), rtrim(), btrim(), lower(), upper(), initcap(), replace(), and split_part(). These are immutable like their non-JSON string variants.", "commit_aliases": ["bd4f879a9"], "source_commits": ["bd4f879a9"], "source_entry_id": "19.0/changes/105", "db_id": "19676c3c340ca8cc7c37a53c4e91b032", "patch_ids": ["85a7c4c070b81548aa43b56e93d9f013"], "statement_hash": "5ac1fb152d58dea8d0216ca7dc5ce2e5030cbc15d1c1d24f537021440e9d453e", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-367c4d02b8f12f93", "migration": false}, {"id": "19.0-87bd1799995a1918", "cves": [], "html": "<p>Allow casts between <a href=\"/docs/19/datatype-binary.html\" title=\"8.4.\u00a0Binary Data Types\"><code>bytea</code></a> and <a href=\"/docs/19/datatype-uuid.html\" title=\"8.12.\u00a0UUID Type\"><code>uuid</code></a> data types (Dagfinn Ilmari Manns\u00e5ker, Aleksander Alekseev) <a href=\"https://postgr.es/c/ba21f5bf8\">\u00a7</a></p>", "text": "Allow casts between bytea and uuid data types (Dagfinn Ilmari Manns\u00e5ker, Aleksander Alekseev) \u00a7", "title": "Allow casts between bytea and uuid data types", "commits": ["ba21f5bf8"], "section": "Data Types", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-DATATYPES", "source_hash": "c7ce78cdd015de9b3fedd176296573eb251272d7cefc64b5876705fec2da7fd9", "section_path": ["Data Types"], "commit_groups": [["ba21f5bf8"]], "identity_text": "Allow casts between bytea and uuid data types (Dagfinn Ilmari Manns\u00e5ker, Aleksander Alekseev)", "commit_aliases": ["ba21f5bf8"], "source_commits": ["ba21f5bf8"], "source_entry_id": "19.0/changes/106", "db_id": "57e8f049fc17a1ebfa78a069f87af9d5", "patch_ids": ["79dfe5a7aa3ae37007d07b69656134ad"], "statement_hash": "1a7732ecad352f8f83f7f60e962966a4196990275053699ac9d410e3584cd499", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-87bd1799995a1918", "migration": false}, {"id": "19.0-71bb7a085cd3d0d4", "cves": [], "html": "<p>Add ability to cast between database names and <a href=\"/docs/19/datatype-oid.html\" title=\"8.19.\u00a0Object Identifier Types\"><code>oid</code></a>s using <a href=\"/docs/19/datatype-oid.html\" title=\"8.19.\u00a0Object Identifier Types\"><code>regdatabase</code></a> (Ian Lawrence Barwick) <a href=\"https://postgr.es/c/bd09f024a\">\u00a7</a></p>", "text": "Add ability to cast between database names and oids using regdatabase (Ian Lawrence Barwick) \u00a7", "title": "Add ability to cast between database names and oids using regdatabase", "commits": ["bd09f024a"], "section": "Data Types", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-DATATYPES", "source_hash": "aa215150f023f58369e6d04698fa8ebd6f2744c972261292d0a4bad2aa53b789", "section_path": ["Data Types"], "commit_groups": [["bd09f024a"]], "identity_text": "Add ability to cast between database names and oids using regdatabase (Ian Lawrence Barwick)", "commit_aliases": ["bd09f024a"], "source_commits": ["bd09f024a"], "source_entry_id": "19.0/changes/107", "db_id": "fa6edc92ae5927848154347862d836e2", "patch_ids": ["699308b41bd67d6a6194dfaa2aae2f99"], "statement_hash": "7181425fd8e60ef76072279859312846a2ce1424bb5656cdd85a4199e55d352d", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-71bb7a085cd3d0d4", "migration": false}, {"id": "19.0-125038494b3cfac8", "cves": [], "html": "<p>Add functions <a href=\"/docs/19/functions-tid.html\" title=\"9.14.\u00a0TID Functions\"><code>tid_block()</code></a> and <a href=\"/docs/19/functions-tid.html\" title=\"9.14.\u00a0TID Functions\"><code>tid_offset()</code></a> to extract block numbers and offsets from <a href=\"/docs/19/datatype-oid.html\" title=\"8.19.\u00a0Object Identifier Types\"><code>tid</code></a> values (Ayush Tiwari) <a href=\"https://postgr.es/c/df6949ccf\">\u00a7</a></p>", "text": "Add functions tid_block() and tid_offset() to extract block numbers and offsets from tid values (Ayush Tiwari) \u00a7", "title": "Add functions tid_block() and tid_offset() to extract block numbers and offsets from tid values", "commits": ["df6949ccf"], "section": "Data Types", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-DATATYPES", "source_hash": "ed777f011cb41e4521d02201190fefe2dbb70f4fd69051821e13cc8113193b05", "section_path": ["Data Types"], "commit_groups": [["df6949ccf"]], "identity_text": "Add functions tid_block() and tid_offset() to extract block numbers and offsets from tid values (Ayush Tiwari)", "commit_aliases": ["df6949ccf"], "source_commits": ["df6949ccf"], "source_entry_id": "19.0/changes/108", "db_id": "df2a8577838b926e76c38171f060886e", "patch_ids": ["80376c5aae62da913eecf01d58b58884"], "statement_hash": "c024a01d8e0c602e154f076bec837fe884838addda2499ec491b058eb813f441", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-125038494b3cfac8", "migration": false}, {"id": "19.0-f79bb3200b276740", "cves": [], "html": "<p>Add <a href=\"/docs/19/datatype-datetime.html\" title=\"8.5.\u00a0Date/Time Types\"><code>date</code></a>, <a href=\"/docs/19/datatype-datetime.html\" title=\"8.5.\u00a0Date/Time Types\"><code>timestamp</code></a>, and <a href=\"/docs/19/datatype-datetime.html\" title=\"8.5.\u00a0Date/Time Types\"><code>timestamptz</code></a> versions of <a href=\"/docs/19/functions-math.html#FUNCTIONS-MATH-RANDOM-TABLE\" title=\"Table\u00a09.6.\u00a0Random Functions\"><code>random(min, max)</code></a> (Damien Clochard, Dean Rasheed) <a href=\"https://postgr.es/c/faf071b55\">\u00a7</a> <a href=\"https://postgr.es/c/9c24111c4\">\u00a7</a></p>", "text": "Add date, timestamp, and timestamptz versions of random(min, max) (Damien Clochard, Dean Rasheed) \u00a7 \u00a7", "title": "Add date, timestamp, and timestamptz versions of random(min, max)", "commits": ["9c24111c4", "faf071b55"], "section": "Functions", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-FUNCTIONS", "source_hash": "a839078a3b5c4dd8be0190945641f495e688ab0f9eb757b4bd909dff67529d3e", "section_path": ["Functions"], "commit_groups": [["9c24111c4"], ["faf071b55"]], "identity_text": "Add date, timestamp, and timestamptz versions of random(min, max) (Damien Clochard, Dean Rasheed)", "commit_aliases": ["9c24111c4", "faf071b55"], "source_commits": ["9c24111c4", "faf071b55"], "source_entry_id": "19.0/changes/109", "db_id": "a285e4910874d03aac540644095cf79d", "patch_ids": ["407a606b6d3de896d7a98c0eb9f90fcf", "c5fb9e2800842db8d8e24b8f1cc21391"], "statement_hash": "6c33a20a9d60637e158f968566e9ba936be7ada695fd5a89621a3e2ed7efdbbf", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-f79bb3200b276740", "migration": false}, {"id": "19.0-e8e9f70e70a6e7ae", "cves": [], "html": "<p>Allow <a href=\"/docs/19/functions-binarystring.html#FUNCTIONS-BINARYSTRING-CONVERSIONS\" title=\"Table\u00a09.13.\u00a0Text/Binary String Conversion Functions\"><code>encode()</code></a> and <a href=\"/docs/19/functions-binarystring.html#FUNCTIONS-BINARYSTRING-CONVERSIONS\" title=\"Table\u00a09.13.\u00a0Text/Binary String Conversion Functions\"><code>decode()</code></a> to process data in <code>base64url</code> and <code>base32hex</code> formats (Andrey Borodin, Aleksander Alekseev, Florents Tselai) <a href=\"https://postgr.es/c/497c1170c\">\u00a7</a> <a href=\"https://postgr.es/c/e752a2ccc\">\u00a7</a> <a href=\"https://postgr.es/c/e1d917182\">\u00a7</a></p>\n<p>This format retains ordering, unlike <code>base32</code>.</p>", "text": "Allow encode() and decode() to process data in base64url and base32hex formats (Andrey Borodin, Aleksander Alekseev, Florents Tselai) \u00a7 \u00a7 \u00a7 This format retains ordering, unlike base32.", "title": "Allow encode() and decode() to process data in base64url and base32hex formats", "commits": ["497c1170c", "e1d917182", "e752a2ccc"], "section": "Functions", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-FUNCTIONS", "source_hash": "fae527f7b48e7bcbb749e79a62475f027703ec83f13349dbbe0018d353cb5e20", "section_path": ["Functions"], "commit_groups": [["497c1170c"], ["e1d917182"], ["e752a2ccc"]], "identity_text": "Allow encode() and decode() to process data in base64url and base32hex formats (Andrey Borodin, Aleksander Alekseev, Florents Tselai) This format retains ordering, unlike base32.", "commit_aliases": ["497c1170c", "e1d917182", "e752a2ccc"], "source_commits": ["497c1170c", "e1d917182", "e752a2ccc"], "source_entry_id": "19.0/changes/110", "db_id": "9ef0c90664f8100114b871e837a6ea2d", "patch_ids": ["01e6ec89475fa03fbacd633eca4b3e08", "9b7afda96b453b9640644a5e36dfd6d5", "f1182c1a1aefbdca98c8e39d959f9050"], "statement_hash": "c7f6c246ca3cf52c4a4de9dbb2ebd6b9c74cd949164941d7dd60fa13052c5c72", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-e8e9f70e70a6e7ae", "migration": false}, {"id": "19.0-3b0b82fab34a0f85", "cves": [], "html": "<p>Add functions to return a set of ranges resulting from range subtraction (Paul A. Jungwirth) <a href=\"https://postgr.es/c/5eed8ce50\">\u00a7</a></p>\n<p>The functions are <a href=\"/docs/19/functions-range.html#RANGE-FUNCTIONS-TABLE\" title=\"Table\u00a09.61.\u00a0Range Functions\"><code>range_minus_multi()</code></a> and <a href=\"/docs/19/functions-range.html#MULTIRANGE-FUNCTIONS-TABLE\" title=\"Table\u00a09.62.\u00a0Multirange Functions\"><code>multirange_minus_multi()</code></a>. This is useful to represent range subtraction results with gaps.</p>", "text": "Add functions to return a set of ranges resulting from range subtraction (Paul A. Jungwirth) \u00a7 The functions are range_minus_multi() and multirange_minus_multi(). This is useful to represent range subtraction results with gaps.", "title": "Add functions to return a set of ranges resulting from range subtraction", "commits": ["5eed8ce50"], "section": "Functions", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-FUNCTIONS", "source_hash": "57ae7ae896ef2ffd75d849181b2f72b1a43d1b05ded0b3a216ef6bc10ecf660e", "section_path": ["Functions"], "commit_groups": [["5eed8ce50"]], "identity_text": "Add functions to return a set of ranges resulting from range subtraction (Paul A. Jungwirth) The functions are range_minus_multi() and multirange_minus_multi(). This is useful to represent range subtraction results with gaps.", "commit_aliases": ["5eed8ce50"], "source_commits": ["5eed8ce50"], "source_entry_id": "19.0/changes/111", "db_id": "c7de4d92ca3a3df668d33e6dc4cbab8a", "patch_ids": ["ba1fc92e640d152257b543678fa8c705"], "statement_hash": "76c27dc16f5e638526a73a106fadd34648a22646f4940e45a2ec3e710f36afcd", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-3b0b82fab34a0f85", "migration": false}, {"id": "19.0-c55137b0dd3f9b02", "cves": [], "html": "<p>Add function <a href=\"/docs/19/functions-comparison.html#FUNCTIONS-COMPARISON-FUNC-TABLE\" title=\"Table\u00a09.3.\u00a0Comparison Functions\"><code>error_on_null()</code></a> to return the supplied parameter, or error on <code>NULL</code> input (Joel Jacobson) <a href=\"https://postgr.es/c/2b75c38b7\">\u00a7</a></p>", "text": "Add function error_on_null() to return the supplied parameter, or error on NULL input (Joel Jacobson) \u00a7", "title": "Add function error_on_null() to return the supplied parameter, or error on NULL input", "commits": ["2b75c38b7"], "section": "Functions", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-FUNCTIONS", "source_hash": "18379dabd622e75ef2578dd813807bc8cd6e51cdd6060b11537b65747f8f659f", "section_path": ["Functions"], "commit_groups": [["2b75c38b7"]], "identity_text": "Add function error_on_null() to return the supplied parameter, or error on NULL input (Joel Jacobson)", "commit_aliases": ["2b75c38b7"], "source_commits": ["2b75c38b7"], "source_entry_id": "19.0/changes/112", "db_id": "def0cd69c9e13dfd108b029da100d566", "patch_ids": ["6668deefdb92b652d44a461e17f0b45e"], "statement_hash": "21543872002d12a61698a6d28fe0645e37793660d25fb3dd2469478e28cc4748", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-c55137b0dd3f9b02", "migration": false}, {"id": "19.0-c9dccac43491bb15", "cves": [], "html": "<p>Allow <a href=\"/docs/19/functions-json.html#FUNCTIONS-SQLJSON-MISC\" title=\"Table\u00a09.51.\u00a0SQL/JSON Testing Functions\"><code>IS JSON</code></a> to work on domains defined over supported base types (Jian He) <a href=\"https://postgr.es/c/3b4c2b9db\">\u00a7</a></p>\n<p>The supported base types are <a href=\"/docs/19/datatype-character.html\" title=\"8.3.\u00a0Character Types\"><code>TEXT</code></a>, <a href=\"/docs/19/datatype-json.html\" title=\"8.14.\u00a0JSON Types\"><code>JSON</code></a>, <a href=\"/docs/19/datatype-json.html\" title=\"8.14.\u00a0JSON Types\"><code>JSONB</code></a>, and <a href=\"/docs/19/datatype-binary.html\" title=\"8.4.\u00a0Binary Data Types\"><code>BYTEA</code></a>.</p>", "text": "Allow IS JSON to work on domains defined over supported base types (Jian He) \u00a7 The supported base types are TEXT, JSON, JSONB, and BYTEA.", "title": "Allow IS JSON to work on domains defined over supported base types", "commits": ["3b4c2b9db"], "section": "Functions", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-FUNCTIONS", "source_hash": "68c8b7e34705ae43e87ebb08523834b3a9f4d6ca2d18ccc46c31cf9167d541ec", "section_path": ["Functions"], "commit_groups": [["3b4c2b9db"]], "identity_text": "Allow IS JSON to work on domains defined over supported base types (Jian He) The supported base types are TEXT, JSON, JSONB, and BYTEA.", "commit_aliases": ["3b4c2b9db"], "source_commits": ["3b4c2b9db"], "source_entry_id": "19.0/changes/113", "db_id": "53286fe15e9ad2dc8248989b05a763d3", "patch_ids": ["b6248bf8911a05e519e4612c5650e618"], "statement_hash": "3a96a721f9e3683ee3b83ff3d672991815bd08125fbdc312fc91e7682c35801a", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-c9dccac43491bb15", "migration": false}, {"id": "19.0-afd081d748ac9aab", "cves": [], "html": "<p>Add <a href=\"/docs/19/textsearch-dictionaries.html#TEXTSEARCH-SNOWBALL-DICTIONARY\" title=\"12.6.6.\u00a0Snowball Dictionary\">full text stemmers</a> for Polish and Esperanto (Tom Lane) <a href=\"https://postgr.es/c/7dc95cc3b\">\u00a7</a></p>\n<p>The Dutch stemmer has also been updated. The old Dutch stemmer is available via <a href=\"/docs/19/textsearch-dictionaries.html#TEXTSEARCH-SNOWBALL-DICTIONARY\" title=\"12.6.6.\u00a0Snowball Dictionary\"><code>dutch_porter</code></a>.</p>", "text": "Add full text stemmers for Polish and Esperanto (Tom Lane) \u00a7 The Dutch stemmer has also been updated. The old Dutch stemmer is available via dutch_porter.", "title": "Add full text stemmers for Polish and Esperanto", "commits": ["7dc95cc3b"], "section": "Functions", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-FUNCTIONS", "source_hash": "a8037a4465dd5689ff3f4f1a0fd65569dd467f4b145a0cda0a708cc808a9b2a8", "section_path": ["Functions"], "commit_groups": [["7dc95cc3b"]], "identity_text": "Add full text stemmers for Polish and Esperanto (Tom Lane) The Dutch stemmer has also been updated. The old Dutch stemmer is available via dutch_porter.", "commit_aliases": ["7dc95cc3b"], "source_commits": ["7dc95cc3b"], "source_entry_id": "19.0/changes/114", "db_id": "9171286cb14dbf5806989fbcf2526528", "patch_ids": ["4db6a129a441029f8943300d8929cf11"], "statement_hash": "86128b5095e14f3ca0fd482d8c52bde6fa8bacc92448ee65e4280268d1c2fa23", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-afd081d748ac9aab", "migration": false}, {"id": "19.0-19e83da9aed9bb4c", "cves": [], "html": "<p>Allow event triggers to be written using <a href=\"/docs/19/plpython.html\" title=\"Chapter\u00a044.\u00a0PL/Python \u2014 Python Procedural Language\"><span>PL/Python</span></a> (Euler Taveira, Dimitri Fontaine) <a href=\"https://postgr.es/c/53eff471c\">\u00a7</a></p>", "text": "Allow event triggers to be written using PL/Python (Euler Taveira, Dimitri Fontaine) \u00a7", "title": "Allow event triggers to be written using PL/Python", "commits": ["53eff471c"], "section": "Functions", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-FUNCTIONS", "source_hash": "77962c064a273e05efd2b61ebac298cb405f217bf9ebefeda59aee0663fbce65", "section_path": ["Functions"], "commit_groups": [["53eff471c"]], "identity_text": "Allow event triggers to be written using PL/Python (Euler Taveira, Dimitri Fontaine)", "commit_aliases": ["53eff471c"], "source_commits": ["53eff471c"], "source_entry_id": "19.0/changes/115", "db_id": "dea4d618db8f59f9a6897cebf4fd37b3", "patch_ids": ["12561dc0cbadbe3c5683a8d9fc46a72b"], "statement_hash": "e86760cae912c2895e04b314848870434aba1cd233fb99049b68bad93b6ce9cc", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-19e83da9aed9bb4c", "migration": false}, {"id": "19.0-69aa41fdebdd77f0", "cves": [], "html": "<p>Allow libpq connections to specify a service file via <a href=\"/docs/19/libpq-connect.html#LIBPQ-CONNECT-SERVICEFILE\"><code>servicefile</code></a> (Torsten F\u00f6rtsch, Ryo Kanbayashi) <a href=\"https://postgr.es/c/092f3c63e\">\u00a7</a></p>", "text": "Allow libpq connections to specify a service file via servicefile (Torsten F\u00f6rtsch, Ryo Kanbayashi) \u00a7", "title": "Allow libpq connections to specify a service file via servicefile", "commits": ["092f3c63e"], "section": "Libpq", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-LIBPQ", "source_hash": "64de18108bcc62edb500032785f0cc406dedf7ef450fe3951694658791401afa", "section_path": ["Libpq"], "commit_groups": [["092f3c63e"]], "identity_text": "Allow libpq connections to specify a service file via servicefile (Torsten F\u00f6rtsch, Ryo Kanbayashi)", "commit_aliases": ["092f3c63e"], "source_commits": ["092f3c63e"], "source_entry_id": "19.0/changes/116", "db_id": "0db5717ffc9d7a38164ed481641c123a", "patch_ids": ["affe84177ff8ca2c35697b99487d1989"], "statement_hash": "6df45cd5d5c300a4d4a030864cebbac2debaa6a9e490e2a4139913931e043377", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-69aa41fdebdd77f0", "migration": false}, {"id": "19.0-b5fec90b8d9cccee", "cves": [], "html": "<p>Add special libpq protocol parameters for compatibility testing (Jelte Fennema-Nio, Jacob Champion) <a href=\"https://postgr.es/c/d8d7c5dc8\">\u00a7</a></p>\n<p>Otherwise known as <a href=\"https://wiki.postgresql.org/wiki/Grease\">protocol grease</a>, which was active during the 19 beta period. These will no longer be sent as of the <span>PostgreSQL</span> 19 official release, but the parameter reservations will remain for potential use in the future.</p>", "text": "Add special libpq protocol parameters for compatibility testing (Jelte Fennema-Nio, Jacob Champion) \u00a7 Otherwise known as protocol grease, which was active during the 19 beta period. These will no longer be sent as of the PostgreSQL 19 official release, but the parameter reservations will remain for potential use in the future.", "title": "Add special libpq protocol parameters for compatibility testing", "commits": ["d8d7c5dc8"], "section": "Libpq", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-LIBPQ", "source_hash": "c5fb4bfaa74cf3b3818ee61e8d4ac15edbca103da3729cd9c38e1a7e861adec5", "section_path": ["Libpq"], "commit_groups": [["d8d7c5dc8"]], "identity_text": "Add special libpq protocol parameters for compatibility testing (Jelte Fennema-Nio, Jacob Champion) Otherwise known as protocol grease, which was active during the 19 beta period. These will no longer be sent as of the PostgreSQL 19 official release, but the parameter reservations will remain for potential use in the future.", "commit_aliases": ["d8d7c5dc8"], "source_commits": ["d8d7c5dc8"], "source_entry_id": "19.0/changes/117", "db_id": "ff2b1dfe6067b31cf2bf934b7684cd23", "patch_ids": ["3632c83c1c1a91ef0ac583beea2de520"], "statement_hash": "650d3c1f8b2817bbf8a3398d8b09dc4b6cdd677149d6a52b52e8eba14e0d179b", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-b5fec90b8d9cccee", "migration": false}, {"id": "19.0-1d98b3714cb11ecb", "cves": [], "html": "<p>Add libpq connection parameter <a href=\"/docs/19/libpq-connect.html#LIBPQ-CONNECT-OAUTH-CA-FILE\"><code>oauth_ca_file</code></a> to specify an alternate certificate authority when communicating with OAuth providers (Jonathan Gonzalez V., Jacob Champion) <a href=\"https://postgr.es/c/993368113\">\u00a7</a></p>\n<p>This can also be set via the <a href=\"/docs/19/libpq-envars.html\" title=\"32.15.\u00a0Environment Variables\"><code>PGOAUTHCAFILE</code></a> environment variable. The default is to use <span>curl</span>'s built-in certificates.</p>", "text": "Add libpq connection parameter oauth_ca_file to specify an alternate certificate authority when communicating with OAuth providers (Jonathan Gonzalez V., Jacob Champion) \u00a7 This can also be set via the PGOAUTHCAFILE environment variable. The default is to use curl's built-in certificates.", "title": "Add libpq connection parameter oauth_ca_file to specify an alternate certificate authority when communicating with OAuth providers", "commits": ["993368113"], "section": "Libpq", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-LIBPQ", "source_hash": "a58caab2d1913301414e95545c31b26666028c916b1cded6ace13b5884164741", "section_path": ["Libpq"], "commit_groups": [["993368113"]], "identity_text": "Add libpq connection parameter oauth_ca_file to specify an alternate certificate authority when communicating with OAuth providers (Jonathan Gonzalez V., Jacob Champion) This can also be set via the PGOAUTHCAFILE environment variable. The default is to use curl's built-in certificates.", "commit_aliases": ["993368113"], "source_commits": ["993368113"], "source_entry_id": "19.0/changes/118", "db_id": "a0cb2341ae578cdafb7b9251dadd561d", "patch_ids": ["74a7b12641d7fdb5c60efa36dfcc24ef"], "statement_hash": "8af2e7418b174d25fc0641b554ffb9445d06fa08d16c710f4eada6b93cd948f3", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-1d98b3714cb11ecb", "migration": false}, {"id": "19.0-3d4f5dde8f72bd18", "cves": [], "html": "<p>Allow libpq environment variable <a href=\"/docs/19/libpq-envars.html\" title=\"32.15.\u00a0Environment Variables\"><code>PGOAUTHDEBUG</code></a> to specify particular debug options (Zsolt Parragi, Jacob Champion) <a href=\"https://postgr.es/c/6d00fb904\">\u00a7</a></p>\n<p>The <code>UNSAFE</code> option still generates all debugging output.</p>", "text": "Allow libpq environment variable PGOAUTHDEBUG to specify particular debug options (Zsolt Parragi, Jacob Champion) \u00a7 The UNSAFE option still generates all debugging output.", "title": "Allow libpq environment variable PGOAUTHDEBUG to specify particular debug options", "commits": ["6d00fb904"], "section": "Libpq", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-LIBPQ", "source_hash": "af5c4aa6403b9d1bb74c20e1b4a06ecbe4ec6bbda588e0f8fc99e3e27cecb6e1", "section_path": ["Libpq"], "commit_groups": [["6d00fb904"]], "identity_text": "Allow libpq environment variable PGOAUTHDEBUG to specify particular debug options (Zsolt Parragi, Jacob Champion) The UNSAFE option still generates all debugging output.", "commit_aliases": ["6d00fb904"], "source_commits": ["6d00fb904"], "source_entry_id": "19.0/changes/119", "db_id": "ac594596bc1389c769f9ae799c786ec2", "patch_ids": ["8b76c436eb2fe30ae3510bdd034927b4"], "statement_hash": "884f800313f3dc3104168fe397c3398b3da261f97fc1294facefc62a24452bd7", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-3d4f5dde8f72bd18", "migration": false}, {"id": "19.0-06a875925b7e1fe7", "cves": [], "html": "<p>Improve custom OAuth client flows (Jacob Champion) <a href=\"https://postgr.es/c/e982331b5\">\u00a7</a> <a href=\"https://postgr.es/c/0af4d402c\">\u00a7</a></p>\n<p>Previously, libpq reported only a generic error message during custom flow failures, and each flow implementation was required to calculate the issuer identifier independently. Add a new authdata hook type <a href=\"/docs/19/libpq-oauth.html#LIBPQ-OAUTH-AUTHDATA-OAUTH-BEARER-TOKEN-V2\"><code>PQAUTHDATA_OAUTH_BEARER_TOKEN_V2</code></a> that precomputes the issuer ID and lets hooks provide error details.</p>", "text": "Improve custom OAuth client flows (Jacob Champion) \u00a7 \u00a7 Previously, libpq reported only a generic error message during custom flow failures, and each flow implementation was required to calculate the issuer identifier independently. Add a new authdata hook type PQAUTHDATA_OAUTH_BEARER_TOKEN_V2 that precomputes the issuer ID and lets hooks provide error details.", "title": "Improve custom OAuth client flows", "commits": ["0af4d402c", "e982331b5"], "section": "Libpq", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-LIBPQ", "source_hash": "6ac66c5f7a369dc3e0fd25d3fdb032276fb071d828527592c5b9c3b9fd4b2935", "section_path": ["Libpq"], "commit_groups": [["0af4d402c"], ["e982331b5"]], "identity_text": "Improve custom OAuth client flows (Jacob Champion) Previously, libpq reported only a generic error message during custom flow failures, and each flow implementation was required to calculate the issuer identifier independently. Add a new authdata hook type PQAUTHDATA_OAUTH_BEARER_TOKEN_V2 that precomputes the issuer ID and lets hooks provide error details.", "commit_aliases": ["0af4d402c", "e982331b5"], "source_commits": ["0af4d402c", "e982331b5"], "source_entry_id": "19.0/changes/120", "db_id": "6ecc8b12dde085c9b381da550d01abb7", "patch_ids": ["00cef603f69d2b87aaada4647479e1f9", "98992f20ad5f17c79ec1458bab01ed52"], "statement_hash": "e5cb1f3de5cbbecb22c3750566d0d74801fe5d7a4f74464cfb514d3c97326e20", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-06a875925b7e1fe7", "migration": false}, {"id": "19.0-2d877d014001d350", "cves": [], "html": "<p>Add libpq function <a href=\"/docs/19/libpq-threading.html\" title=\"32.21.\u00a0Behavior in Threaded Programs\"><code>PQgetThreadLock()</code></a> to retrieve the current locking callback (Jacob Champion) <a href=\"https://postgr.es/c/b8d768583\">\u00a7</a></p>", "text": "Add libpq function PQgetThreadLock() to retrieve the current locking callback (Jacob Champion) \u00a7", "title": "Add libpq function PQgetThreadLock() to retrieve the current locking callback", "commits": ["b8d768583"], "section": "Libpq", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-LIBPQ", "source_hash": "b605e57baf7603c715fdd592105dd4dab4277da7891a18252729b60a8770f918", "section_path": ["Libpq"], "commit_groups": [["b8d768583"]], "identity_text": "Add libpq function PQgetThreadLock() to retrieve the current locking callback (Jacob Champion)", "commit_aliases": ["b8d768583"], "source_commits": ["b8d768583"], "source_entry_id": "19.0/changes/121", "db_id": "ddedf63a2aa70db34c67ca3ebfd0db4e", "patch_ids": ["2d7dd199d041254f4fabcbaee9bcaeda"], "statement_hash": "df92459494c7e653bc93f7bb1339e3e8ed5f706822a15207c7bb240dbc224e2f", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-2d877d014001d350", "migration": false}, {"id": "19.0-798dbb9364a5d9c5", "cves": [], "html": "<p>Allow the search path to appear in the <a href=\"/docs/19/app-psql.html\" title=\"psql\"><span>psql</span></a> prompt via <a href=\"/docs/19/app-psql.html#APP-PSQL-PROMPTING-S\"><code>%S</code></a> (Florents Tselai) <a href=\"https://postgr.es/c/b3ce55f41\">\u00a7</a></p>\n<p>This works when <a href=\"/docs/19/app-psql.html\" title=\"psql\"><span>psql</span></a> is connected to <span>PostgreSQL</span> 18 or later.</p>", "text": "Allow the search path to appear in the psql prompt via %S (Florents Tselai) \u00a7 This works when psql is connected to PostgreSQL 18 or later.", "title": "Allow the search path to appear in the psql prompt via %S", "commits": ["b3ce55f41"], "section": "psql", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-PSQL", "source_hash": "eb5f3532cbd779ff0f91ab011cc454508ae5f01ff43500a5d8dbdaead990a9aa", "section_path": ["psql"], "commit_groups": [["b3ce55f41"]], "identity_text": "Allow the search path to appear in the psql prompt via %S (Florents Tselai) This works when psql is connected to PostgreSQL 18 or later.", "commit_aliases": ["b3ce55f41"], "source_commits": ["b3ce55f41"], "source_entry_id": "19.0/changes/122", "db_id": "4466a740b06e239e2c620ecf5068da5c", "patch_ids": ["d4c541bb14197ec33826096426a28019"], "statement_hash": "29ab507d60b9104abb3f9325a7f1d1a4f509977ce16eaad9324ac80a3893381b", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-798dbb9364a5d9c5", "migration": false}, {"id": "19.0-2460a91e44effe22", "cves": [], "html": "<p>Allow the hot standby status to appear in the <a href=\"/docs/19/app-psql.html\" title=\"psql\"><span>psql</span></a> prompt via <a href=\"/docs/19/app-psql.html#APP-PSQL-PROMPTING-I\"><code>%i</code></a> (Jim Jones) <a href=\"https://postgr.es/c/dddbbc253\">\u00a7</a></p>", "text": "Allow the hot standby status to appear in the psql prompt via %i (Jim Jones) \u00a7", "title": "Allow the hot standby status to appear in the psql prompt via %i", "commits": ["dddbbc253"], "section": "psql", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-PSQL", "source_hash": "4ee27cd0c8e43dcdc75cd47abd3566022326642e7543aa4c6dac416dc262bc37", "section_path": ["psql"], "commit_groups": [["dddbbc253"]], "identity_text": "Allow the hot standby status to appear in the psql prompt via %i (Jim Jones)", "commit_aliases": ["dddbbc253"], "source_commits": ["dddbbc253"], "source_entry_id": "19.0/changes/123", "db_id": "196935ab638708fd941313f1281c4614", "patch_ids": ["c3278efe621f1e6a7560cb87e94e80b8"], "statement_hash": "30d6f5876cda5388320afc117ed20c26e3157d5fb8b9946c8e7b404f8063b8ce", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-2460a91e44effe22", "migration": false}, {"id": "19.0-3a8967bead414fb3", "cves": [], "html": "<p>Modify <a href=\"/docs/19/app-psql.html\" title=\"psql\"><span>psql</span></a> backslash commands to show comments for publications, subscriptions, and extended statistics (Fujii Masao, Jim Jones) <a href=\"https://postgr.es/c/aecc55866\">\u00a7</a></p>\n<p>The modified commands are <a href=\"/docs/19/app-psql.html#APP-PSQL-META-COMMAND-DRP\"><code>\\dRp+</code></a>, <a href=\"/docs/19/app-psql.html#APP-PSQL-META-COMMAND-DRS\"><code>\\dRs+</code></a>, and <a href=\"/docs/19/app-psql.html#APP-PSQL-META-COMMAND-DX-UC\"><code>\\dX+</code></a>.</p>", "text": "Modify psql backslash commands to show comments for publications, subscriptions, and extended statistics (Fujii Masao, Jim Jones) \u00a7 The modified commands are \\dRp+, \\dRs+, and \\dX+.", "title": "Modify psql backslash commands to show comments for publications, subscriptions, and extended statistics", "commits": ["aecc55866"], "section": "psql", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-PSQL", "source_hash": "91afa6ca29fb34baaec7b7d09a3a233e6484f1bf689a8c2bbe4a622a56383e45", "section_path": ["psql"], "commit_groups": [["aecc55866"]], "identity_text": "Modify psql backslash commands to show comments for publications, subscriptions, and extended statistics (Fujii Masao, Jim Jones) The modified commands are \\dRp+, \\dRs+, and \\dX+.", "commit_aliases": ["aecc55866"], "source_commits": ["aecc55866"], "source_entry_id": "19.0/changes/124", "db_id": "a3c83cc4c02efda0036fe6bb03e51315", "patch_ids": ["b5bedc52f45dc20c8d04f9bb99aea7eb"], "statement_hash": "00c77457236fd72b2b76ec1b032b74a97a28c583a1e0e79d257503f53a6b5981", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-3a8967bead414fb3", "migration": false}, {"id": "19.0-0504fe22c816f685", "cves": [], "html": "<p>Allow control over how booleans are displayed in <a href=\"/docs/19/app-psql.html\" title=\"psql\"><span>psql</span></a> (David G. Johnston) <a href=\"https://postgr.es/c/645cb44c5\">\u00a7</a></p>\n<p>The \\pset variables are <a href=\"/docs/19/app-psql.html#APP-PSQL-META-COMMAND-PSET-DISPLAY-TRUE\"><code>display_true</code></a> and <a href=\"/docs/19/app-psql.html#APP-PSQL-META-COMMAND-PSET-DISPLAY-FALSE\"><code>display_false</code></a>.</p>", "text": "Allow control over how booleans are displayed in psql (David G. Johnston) \u00a7 The \\pset variables are display_true and display_false.", "title": "Allow control over how booleans are displayed in psql", "commits": ["645cb44c5"], "section": "psql", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-PSQL", "source_hash": "beb0dcc1ce9fa6386f0bf0df30b2f8131d5dba42d4f4128c2cd6acbd8c982fdd", "section_path": ["psql"], "commit_groups": [["645cb44c5"]], "identity_text": "Allow control over how booleans are displayed in psql (David G. Johnston) The \\pset variables are display_true and display_false.", "commit_aliases": ["645cb44c5"], "source_commits": ["645cb44c5"], "source_entry_id": "19.0/changes/125", "db_id": "1f499376a57bb409ab9c3ca194a28e55", "patch_ids": ["8275ccc0647f8c3b783c82a9ee19ec6a"], "statement_hash": "848c2fa3fe2a386fd07c132b593ddb08856e7b2aaa15179ba62118576afbbbcc", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-0504fe22c816f685", "migration": false}, {"id": "19.0-b591570d95f66bcf", "cves": [], "html": "<p>Add <a href=\"/docs/19/app-psql.html\" title=\"psql\"><span>psql</span></a> variable <a href=\"/docs/19/app-psql.html#APP-PSQL-VARIABLES-SERVICEFILE\"><code>SERVICEFILE</code></a> to reference the service file location (Ryo Kanbayashi) <a href=\"https://postgr.es/c/6b1c4d326\">\u00a7</a></p>", "text": "Add psql variable SERVICEFILE to reference the service file location (Ryo Kanbayashi) \u00a7", "title": "Add psql variable SERVICEFILE to reference the service file location", "commits": ["6b1c4d326"], "section": "psql", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-PSQL", "source_hash": "8759fefabd3a164e20abe195820b4c061ac5623fd471958e640ba0662f894fd0", "section_path": ["psql"], "commit_groups": [["6b1c4d326"]], "identity_text": "Add psql variable SERVICEFILE to reference the service file location (Ryo Kanbayashi)", "commit_aliases": ["6b1c4d326"], "source_commits": ["6b1c4d326"], "source_entry_id": "19.0/changes/126", "db_id": "dc88adffd4fb147f372dbb854b8ef946", "patch_ids": ["f34b2c4e36e82aaed089f9240a655205"], "statement_hash": "b09c8b54ff77de8077e6cbdac02298264ce621d60531bf5d7cc279d44e5bdb63", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-b591570d95f66bcf", "migration": false}, {"id": "19.0-c9aa3d8c8674408e", "cves": [], "html": "<p>Allow <a href=\"/docs/19/app-psql.html\" title=\"psql\"><span>psql</span></a> to more accurately determine if the <a href=\"/docs/19/app-psql.html#APP-PSQL-META-COMMAND-PSET-PAGER\">pager</a> is needed (Erik Wienhold) <a href=\"https://postgr.es/c/27da1a796\">\u00a7</a></p>", "text": "Allow psql to more accurately determine if the pager is needed (Erik Wienhold) \u00a7", "title": "Allow psql to more accurately determine if the pager is needed", "commits": ["27da1a796"], "section": "psql", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-PSQL", "source_hash": "6113bc7d5ac6ce6ca3017852451a83f7de3864887d5c08b7bf602891fe727aff", "section_path": ["psql"], "commit_groups": [["27da1a796"]], "identity_text": "Allow psql to more accurately determine if the pager is needed (Erik Wienhold)", "commit_aliases": ["27da1a796"], "source_commits": ["27da1a796"], "source_entry_id": "19.0/changes/127", "db_id": "43e3e5f1ede31bcf04563b5afcfc3a00", "patch_ids": ["d124a0f76abfa8b4a074a31702b32a98"], "statement_hash": "a13e94bf03e181e5e1b6f290cacb01a36ec07870dc5f606fcf6f13b4a604c26f", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-c9aa3d8c8674408e", "migration": false}, {"id": "19.0-cc1e794ef5a081a8", "cves": [], "html": "<p>Add or improve <a href=\"/docs/19/app-psql.html\" title=\"psql\"><span>psql</span></a> tab completion (Yamaguchi Atsuo, Yugo Nagata, Haruna Miwa, Xuneng Zhou, Dagfinn Ilmari Manns\u00e5ker, Fujii Masao, \u00c1lvaro Herrera, Jian He, Tatsuya Kawata, Ian Lawrence Barwick, Vasuki M) <a href=\"https://postgr.es/c/5fa7837d9\">\u00a7</a> <a href=\"https://postgr.es/c/c6a7d3bab\">\u00a7</a> <a href=\"https://postgr.es/c/81966c545\">\u00a7</a> <a href=\"https://postgr.es/c/a1f7f91be\">\u00a7</a> <a href=\"https://postgr.es/c/6d2ff1de4\">\u00a7</a> <a href=\"https://postgr.es/c/02fd47dbf\">\u00a7</a> <a href=\"https://postgr.es/c/14ee8e640\">\u00a7</a> <a href=\"https://postgr.es/c/ff0bcb248\">\u00a7</a> <a href=\"https://postgr.es/c/86c539c5a\">\u00a7</a> <a href=\"https://postgr.es/c/a604affad\">\u00a7</a> <a href=\"https://postgr.es/c/a4c10de92\">\u00a7</a> <a href=\"https://postgr.es/c/28c4b8a05\">\u00a7</a> <a href=\"https://postgr.es/c/0bf7d4ca9\">\u00a7</a> <a href=\"https://postgr.es/c/344b572e3\">\u00a7</a></p>", "text": "Add or improve psql tab completion (Yamaguchi Atsuo, Yugo Nagata, Haruna Miwa, Xuneng Zhou, Dagfinn Ilmari Manns\u00e5ker, Fujii Masao, \u00c1lvaro Herrera, Jian He, Tatsuya Kawata, Ian Lawrence Barwick, Vasuki M) \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7 \u00a7", "title": "Add or improve psql tab completion", "commits": ["02fd47dbf", "0bf7d4ca9", "14ee8e640", "28c4b8a05", "344b572e3", "5fa7837d9", "6d2ff1de4", "81966c545", "86c539c5a", "a1f7f91be", "a4c10de92", "a604affad", "c6a7d3bab", "ff0bcb248"], "section": "psql", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-PSQL", "source_hash": "495b95f24035b18e959b7118e2b2bccc2eac97e31f678879bc2b7bd96b5a84b7", "section_path": ["psql"], "commit_groups": [["02fd47dbf"], ["0bf7d4ca9"], ["14ee8e640"], ["28c4b8a05"], ["344b572e3"], ["5fa7837d9"], ["6d2ff1de4"], ["81966c545"], ["86c539c5a"], ["a1f7f91be"], ["a4c10de92"], ["a604affad"], ["c6a7d3bab"], ["ff0bcb248"]], "identity_text": "Add or improve psql tab completion (Yamaguchi Atsuo, Yugo Nagata, Haruna Miwa, Xuneng Zhou, Dagfinn Ilmari Manns\u00e5ker, Fujii Masao, \u00c1lvaro Herrera, Jian He, Tatsuya Kawata, Ian Lawrence Barwick, Vasuki M)", "commit_aliases": ["02fd47dbf", "0bf7d4ca9", "14ee8e640", "28c4b8a05", "344b572e3", "5fa7837d9", "6d2ff1de4", "81966c545", "86c539c5a", "a1f7f91be", "a4c10de92", "a604affad", "c6a7d3bab", "ff0bcb248"], "source_commits": ["02fd47dbf", "0bf7d4ca9", "14ee8e640", "28c4b8a05", "344b572e3", "5fa7837d9", "6d2ff1de4", "81966c545", "86c539c5a", "a1f7f91be", "a4c10de92", "a604affad", "c6a7d3bab", "ff0bcb248"], "source_entry_id": "19.0/changes/128", "db_id": "97b6d1cb2b1c6f790e1ee0cc68c428f3", "patch_ids": ["0bc376509890d77647e587ceff1a09ea", "17bff6ec871538f49e658de435f132b7", "20909bee90f1612ca703976d25da4fe7", "5d94de103f4f8fbf41a27b4cf4c56f09", "5f74e7e5145fefdaedfb976ffce67bea", "83ce67d04ac574e86d5bea046edd389e", "aa13c523c0813d34b174efdf29f499ba", "b77a4036f7f23cf20f825245c8da3348", "d46cb2f27b79e74e5030f415873eafca", "d730e4d79557c79705494268a9a195de", "d780ef56bcb3d7ffef09b3cd3188438c", "dd8cde8962ab3420bca932e3d29ff31e", "dfa561fff55c8cf24ddb85664a222972", "fc29e1c27292cc71b84d0ad33579447a"], "statement_hash": "475b3b6334690493954256eb56aa5edf61bc1bf14ac662ca4097554f0d2af294", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-cc1e794ef5a081a8", "migration": false}, {"id": "19.0-667370a1d7ad11aa", "cves": [], "html": "<p>Allow <a href=\"/docs/19/app-pgdump.html\" title=\"pg_dump\"><span>pg_dump</span></a> to include restorable extended statistics (Corey Huinker) <a href=\"https://postgr.es/c/c32fb29e9\">\u00a7</a></p>", "text": "Allow pg_dump to include restorable extended statistics (Corey Huinker) \u00a7", "title": "Allow pg_dump to include restorable extended statistics", "commits": ["c32fb29e9"], "section": "Server Applications", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SERVER-APPS", "source_hash": "6ca6a86204b38f89701c818931a87384b23bb50800f7e3a4dbbde81fa20ea8d1", "section_path": ["Server Applications"], "commit_groups": [["c32fb29e9"]], "identity_text": "Allow pg_dump to include restorable extended statistics (Corey Huinker)", "commit_aliases": ["c32fb29e9"], "source_commits": ["c32fb29e9"], "source_entry_id": "19.0/changes/129", "db_id": "78d7e5131c9e75e325718e7303eaa2ea", "patch_ids": ["0b859504d22f7cc1b13d7fa79360cc6a"], "statement_hash": "f3f31769f227a28a98d92dafef24df40353e3f436ee4ffc6e62a6288b14a61e4", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-667370a1d7ad11aa", "migration": false}, {"id": "19.0-576d256aedc6ad0f", "cves": [], "html": "<p>Change <a href=\"/docs/19/app-vacuumdb.html\" title=\"vacuumdb\"><span>vacuumdb</span></a>'s <code>--analyze-only</code> and <code>--analyze-in-stages</code> options to analyze partitioned tables when no targets are specified (Laurenz Albe, Mircea Cadariu, Chao Li) <a href=\"https://postgr.es/c/6429e5b77\">\u00a7</a> <a href=\"https://postgr.es/c/95b6ec52e\">\u00a7</a></p>\n<p>Previously it skipped partitioned tables. This now matches the behavior of <a href=\"/docs/19/sql-analyze.html\" title=\"ANALYZE\"><code>ANALYZE</code></a>.</p>", "text": "Change vacuumdb's --analyze-only and --analyze-in-stages options to analyze partitioned tables when no targets are specified (Laurenz Albe, Mircea Cadariu, Chao Li) \u00a7 \u00a7 Previously it skipped partitioned tables. This now matches the behavior of ANALYZE.", "title": "Change vacuumdb's --analyze-only and --analyze-in-stages options to analyze partitioned tables when no targets are specified", "commits": ["6429e5b77", "95b6ec52e"], "section": "Server Applications", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SERVER-APPS", "source_hash": "8a9c99d236906094b60b9c71b824e85f2b9ec8b6d1a5497ff9669c1638f49af8", "section_path": ["Server Applications"], "commit_groups": [["6429e5b77"], ["95b6ec52e"]], "identity_text": "Change vacuumdb's --analyze-only and --analyze-in-stages options to analyze partitioned tables when no targets are specified (Laurenz Albe, Mircea Cadariu, Chao Li) Previously it skipped partitioned tables. This now matches the behavior of ANALYZE.", "commit_aliases": ["6429e5b77", "95b6ec52e"], "source_commits": ["6429e5b77", "95b6ec52e"], "source_entry_id": "19.0/changes/130", "db_id": "75d75ff616801d25916149b8c1a0fc78", "patch_ids": ["206a5afd9378226013b2588fa2e94d9a", "46eb2ddf37532fd1958b94f506a70e82"], "statement_hash": "f312d0618d845148fcffe6013a8511fb2fcfb024c7a45bac899a77a3e067de8c", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-576d256aedc6ad0f", "migration": false}, {"id": "19.0-e264544352ec3f56", "cves": [], "html": "<p>Allow <a href=\"/docs/19/app-vacuumdb.html\" title=\"vacuumdb\"><span>vacuumdb</span></a> to report its commands without running them using option <code>--dry-run</code> (Corey Huinker) <a href=\"https://postgr.es/c/d107176d2\">\u00a7</a></p>", "text": "Allow vacuumdb to report its commands without running them using option --dry-run (Corey Huinker) \u00a7", "title": "Allow vacuumdb to report its commands without running them using option --dry-run", "commits": ["d107176d2"], "section": "Server Applications", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SERVER-APPS", "source_hash": "51247e37eaed27858507257407d7d68386869e9e93dbe596c0816437631bfe6d", "section_path": ["Server Applications"], "commit_groups": [["d107176d2"]], "identity_text": "Allow vacuumdb to report its commands without running them using option --dry-run (Corey Huinker)", "commit_aliases": ["d107176d2"], "source_commits": ["d107176d2"], "source_entry_id": "19.0/changes/131", "db_id": "9cd3c254264231befe4336fd58aaedce", "patch_ids": ["ed5a0bc25a94a928543ceaa0c1372881"], "statement_hash": "08f47efe32b5299c72e7c64a41a3147848e2c97fc119f83b7fc4b2a373087d9b", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-e264544352ec3f56", "migration": false}, {"id": "19.0-a3a47db1c535e4cd", "cves": [], "html": "<p>Allow <a href=\"/docs/19/app-pgverifybackup.html\" title=\"pg_verifybackup\"><span>pg_verifybackup</span></a> to read <acronym>WAL</acronym> files stored in <span>tar</span> archives (Amul Sul) <a href=\"https://postgr.es/c/b3cf461b3\">\u00a7</a></p>\n<p>Add option <code>--wal-path</code> as an alias for the existing and deprecated <code>--wal-directory</code> option.</p>", "text": "Allow pg_verifybackup to read WAL files stored in tar archives (Amul Sul) \u00a7 Add option --wal-path as an alias for the existing and deprecated --wal-directory option.", "title": "Allow pg_verifybackup to read WAL files stored in tar archives", "commits": ["b3cf461b3"], "section": "Server Applications", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SERVER-APPS", "source_hash": "152a0eb4b71851087fd91182811f32f9ceb770cc929890a745da5fcf8e421cea", "section_path": ["Server Applications"], "commit_groups": [["b3cf461b3"]], "identity_text": "Allow pg_verifybackup to read WAL files stored in tar archives (Amul Sul) Add option --wal-path as an alias for the existing and deprecated --wal-directory option.", "commit_aliases": ["b3cf461b3"], "source_commits": ["b3cf461b3"], "source_entry_id": "19.0/changes/132", "db_id": "cf41cf8ce513c39a42f3f8b5393fdc5a", "patch_ids": ["95ace84ab191d73f122583aaf81e4a39"], "statement_hash": "65532310468cbba220d1c146fbd7ca9eda74c500bce9229ba305dcf90366a61c", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-a3a47db1c535e4cd", "migration": false}, {"id": "19.0-d9bb89d33bfe0d6f", "cves": [], "html": "<p>Allow <a href=\"/docs/19/pgwaldump.html\" title=\"pg_waldump\"><span>pg_waldump</span></a> to read <acronym>WAL</acronym> files stored in <span>tar</span> archives (Amul Sul) <a href=\"https://postgr.es/c/b15c15139\">\u00a7</a></p>", "text": "Allow pg_waldump to read WAL files stored in tar archives (Amul Sul) \u00a7", "title": "Allow pg_waldump to read WAL files stored in tar archives", "commits": ["b15c15139"], "section": "Server Applications", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SERVER-APPS", "source_hash": "b8cf5baef678a4e3da97aa8de3e112c0551aebbf2682769c06bdc73145af80db", "section_path": ["Server Applications"], "commit_groups": [["b15c15139"]], "identity_text": "Allow pg_waldump to read WAL files stored in tar archives (Amul Sul)", "commit_aliases": ["b15c15139"], "source_commits": ["b15c15139"], "source_entry_id": "19.0/changes/133", "db_id": "26b120f585dba2fb962357e8d46071d0", "patch_ids": ["92f9b79fdf9fb78ee70b0f2530d7a299"], "statement_hash": "01980c4fea242c3b9a2657c22f50ad9f2d747e98d8906b05f5f3afe7a3695dcf", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-d9bb89d33bfe0d6f", "migration": false}, {"id": "19.0-15a2d5ababf6313d", "cves": [], "html": "<p>Improve performance of <a href=\"/docs/19/pgupgrade.html\" title=\"pg_upgrade\"><span>pg_upgrade</span></a> copying large object metadata (Nathan Bossart) <a href=\"https://postgr.es/c/3bcfcd815\">\u00a7</a> <a href=\"https://postgr.es/c/158408fef\">\u00a7</a> <a href=\"https://postgr.es/c/161a3e8b6\">\u00a7</a> <a href=\"https://postgr.es/c/b33f75361\">\u00a7</a></p>\n<p>Various methods are used, depending on the <span>PostgreSQL</span> version of the old cluster.</p>", "text": "Improve performance of pg_upgrade copying large object metadata (Nathan Bossart) \u00a7 \u00a7 \u00a7 \u00a7 Various methods are used, depending on the PostgreSQL version of the old cluster.", "title": "Improve performance of pg_upgrade copying large object metadata", "commits": ["158408fef", "161a3e8b6", "3bcfcd815", "b33f75361"], "section": "Server Applications", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-SERVER-APPS", "source_hash": "af8eba51ecfd578bf49b397150547b6ceef9cc6f218b52642cecc6913fe6b668", "section_path": ["Server Applications"], "commit_groups": [["158408fef"], ["161a3e8b6"], ["3bcfcd815"], ["b33f75361"]], "identity_text": "Improve performance of pg_upgrade copying large object metadata (Nathan Bossart) Various methods are used, depending on the PostgreSQL version of the old cluster.", "commit_aliases": ["158408fef", "161a3e8b6", "3bcfcd815", "b33f75361"], "source_commits": ["158408fef", "161a3e8b6", "3bcfcd815", "b33f75361"], "source_entry_id": "19.0/changes/134", "db_id": "517bfb3f77fd3acc072ccfba83e23dc6", "patch_ids": ["12303ac15e78d39ab08e08ef243d950f", "6b265e25bb8e570015fb349cb57ed5a2", "af863f0d10fe9b397f2bad7e617549a6", "b59ae2604f73a158d4be254f1a275c5a"], "statement_hash": "06a2c858c3b814a3156920f43ab30f49a697eb76b8ddbc130b7c2979bd289b17", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=19.0#19.0-15a2d5ababf6313d", "migration": false}, {"id": "19.0-853f6a7a304647f2", "cves": [], "html": "<p>Allow <a href=\"/docs/19/pgupgrade.html\" title=\"pg_upgrade\"><span>pg_upgrade</span></a> to process non-default tablespaces stored in the <code>PGDATA</code> directory (Nathan Bossart) <a href=\"https://postgr.es/c/412036c22\">\u00a7</a></p>\n<p>Previously such tablespaces generated an error.</p>", "text": "Allow pg_upgrade to process non-default tablespaces stored in the PGDATA directory (Nathan Bossart) \u00a7 Previously such tablespaces generated an error.", "title": "Allow pg_upgrade to process non-default tablespaces stored in the PGDATA directory", "commits": ["412036c22"], "section": "Server Applications", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SERVER-APPS", "source_hash": "592ff08a676cac43e7edd0ada529d5be76b35911fd8b8fb0c85ca8d3182e1149", "section_path": ["Server Applications"], "commit_groups": [["412036c22"]], "identity_text": "Allow pg_upgrade to process non-default tablespaces stored in the PGDATA directory (Nathan Bossart) Previously such tablespaces generated an error.", "commit_aliases": ["412036c22"], "source_commits": ["412036c22"], "source_entry_id": "19.0/changes/135", "db_id": "94dc0d22eae08afaf59f319b80e0628c", "patch_ids": ["1415dad8d3e913c3a3c2d8b913236a6f"], "statement_hash": "14415cbc76aeb007ed68c6488af8453f7d87555212a2eda42239a43446936837", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-853f6a7a304647f2", "migration": false}, {"id": "19.0-78502ebaee1d5b5a", "cves": [], "html": "<p>Add <a href=\"/docs/19/pgbench.html\" title=\"pgbench\"><span>pgbench</span></a> option <code>--continue-on-error</code> to continue after <acronym>SQL</acronym> errors (Rintaro Ikeda, Yugo Nagata, Fujii Masao) <a href=\"https://postgr.es/c/0ab208fa5\">\u00a7</a></p>", "text": "Add pgbench option --continue-on-error to continue after SQL errors (Rintaro Ikeda, Yugo Nagata, Fujii Masao) \u00a7", "title": "Add pgbench option --continue-on-error to continue after SQL errors", "commits": ["0ab208fa5"], "section": "Server Applications", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SERVER-APPS", "source_hash": "bce8cd35f7c235059034552c785a9bd38587ab1cf00ae94a211bcda100459c10", "section_path": ["Server Applications"], "commit_groups": [["0ab208fa5"]], "identity_text": "Add pgbench option --continue-on-error to continue after SQL errors (Rintaro Ikeda, Yugo Nagata, Fujii Masao)", "commit_aliases": ["0ab208fa5"], "source_commits": ["0ab208fa5"], "source_entry_id": "19.0/changes/136", "db_id": "e6ca5ac89580353d35ab9cbf10afc29f", "patch_ids": ["1804cc177d858e5d988c5b73969fd888"], "statement_hash": "0ff23dd6c689d67915d281c3b62b24ab71ac7926fb8b845452530892169a1c87", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-78502ebaee1d5b5a", "migration": false}, {"id": "19.0-4a1523444e160998", "cves": [], "html": "<p>Improve the usability of <a href=\"/docs/19/pgtesttiming.html\" title=\"pg_test_timing\"><span>pg_test_timing</span></a> (Hannu Krosing, Tom Lane) <a href=\"https://postgr.es/c/0b096e379\">\u00a7</a> <a href=\"https://postgr.es/c/9dcc76414\">\u00a7</a></p>\n<p>Report nanoseconds instead of microseconds. In addition to histogram output, output a second table that reports exact timings, with an optional cutoff set by <code>--cutoff</code>.</p>", "text": "Improve the usability of pg_test_timing (Hannu Krosing, Tom Lane) \u00a7 \u00a7 Report nanoseconds instead of microseconds. In addition to histogram output, output a second table that reports exact timings, with an optional cutoff set by --cutoff.", "title": "Improve the usability of pg_test_timing", "commits": ["0b096e379", "9dcc76414"], "section": "Server Applications", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SERVER-APPS", "source_hash": "50f6e632466fd5ec32628c8af04deeb92b815c84ea9f450dbce38014f93196e0", "section_path": ["Server Applications"], "commit_groups": [["0b096e379"], ["9dcc76414"]], "identity_text": "Improve the usability of pg_test_timing (Hannu Krosing, Tom Lane) Report nanoseconds instead of microseconds. In addition to histogram output, output a second table that reports exact timings, with an optional cutoff set by --cutoff.", "commit_aliases": ["0b096e379", "9dcc76414"], "source_commits": ["0b096e379", "9dcc76414"], "source_entry_id": "19.0/changes/137", "db_id": "57f9d08feb979257d3e57027ab281685", "patch_ids": ["9ca940a92cce25756a9ac202704e02f9", "d8d660705cee2d07cb4d15eca1d78f03"], "statement_hash": "29d32531cc204fe26d21ef78195d6c690edce909cea86e2375e05852cd3a240b", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-4a1523444e160998", "migration": false}, {"id": "19.0-5c505665f70aefe3", "cves": [], "html": "<p>Allow <a href=\"/docs/19/app-pgcreatesubscriber.html\" title=\"pg_createsubscriber\"><span>pg_createsubscriber</span></a> to ignore specified publications that already exist (Shubham Khanna) <a href=\"https://postgr.es/c/85ddcc2f4\">\u00a7</a></p>\n<p>Previously this generated an error.</p>", "text": "Allow pg_createsubscriber to ignore specified publications that already exist (Shubham Khanna) \u00a7 Previously this generated an error.", "title": "Allow pg_createsubscriber to ignore specified publications that already exist", "commits": ["85ddcc2f4"], "section": "Server Applications / pg_createsubscriber", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-PG-CREATESUBSCRIBER", "source_hash": "5c6984ff3a33e0bcf90232fd3ec4d124c2edc47adc816db34e2cd22cb8f47d6b", "section_path": ["Server Applications", "pg_createsubscriber"], "commit_groups": [["85ddcc2f4"]], "identity_text": "Allow pg_createsubscriber to ignore specified publications that already exist (Shubham Khanna) Previously this generated an error.", "commit_aliases": ["85ddcc2f4"], "source_commits": ["85ddcc2f4"], "source_entry_id": "19.0/changes/138", "db_id": "fe876660872e5113d1a8dfb5ab611340", "patch_ids": ["0b2cf2db89fc3d41057099f6d3df1807"], "statement_hash": "b3e8a144306f7c0989bbb4fe466e25d2600f15677c63a4ccb3f2ec43a0224d69", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-5c505665f70aefe3", "migration": false}, {"id": "19.0-2a4d169f25fc47c8", "cves": [], "html": "<p>Change the way <a href=\"/docs/19/app-pgcreatesubscriber.html\" title=\"pg_createsubscriber\"><span>pg_createsubscriber</span></a> stores recovery parameters (Alyona Vinter) <a href=\"https://postgr.es/c/639352d90\">\u00a7</a></p>\n<p>Changes are stored in optionally-included <code>pg_createsubscriber.conf</code> rather than directly in <code>postgresql.auto.conf</code>.</p>", "text": "Change the way pg_createsubscriber stores recovery parameters (Alyona Vinter) \u00a7 Changes are stored in optionally-included pg_createsubscriber.conf rather than directly in postgresql.auto.conf.", "title": "Change the way pg_createsubscriber stores recovery parameters", "commits": ["639352d90"], "section": "Server Applications / pg_createsubscriber", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-PG-CREATESUBSCRIBER", "source_hash": "7f142e9c8dd2763369d270479690d9054bcaf935b3e01d260d5855f03523cee3", "section_path": ["Server Applications", "pg_createsubscriber"], "commit_groups": [["639352d90"]], "identity_text": "Change the way pg_createsubscriber stores recovery parameters (Alyona Vinter) Changes are stored in optionally-included pg_createsubscriber.conf rather than directly in postgresql.auto.conf.", "commit_aliases": ["639352d90"], "source_commits": ["639352d90"], "source_entry_id": "19.0/changes/139", "db_id": "98b1b4351ee153f8cd3e73f82c1e532b", "patch_ids": ["919a6bd119819b55650be21ac7457dbc"], "statement_hash": "ac095afa080c3ef38d5c69c923919ec20501864dad35264027ba8c391b392dfd", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-2a4d169f25fc47c8", "migration": false}, {"id": "19.0-de9f163055528b0e", "cves": [], "html": "<p>Add <a href=\"/docs/19/app-pgcreatesubscriber.html\" title=\"pg_createsubscriber\"><span>pg_createsubscriber</span></a> option <code>-l</code>/<code>--logdir</code> to redirect output to files (Gyan Sreejith, Hayato Kuroda) <a href=\"https://postgr.es/c/6b5b7eae3\">\u00a7</a></p>", "text": "Add pg_createsubscriber option -l/--logdir to redirect output to files (Gyan Sreejith, Hayato Kuroda) \u00a7", "title": "Add pg_createsubscriber option -l/--logdir to redirect output to files", "commits": ["6b5b7eae3"], "section": "Server Applications / pg_createsubscriber", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-PG-CREATESUBSCRIBER", "source_hash": "2415d1a4ae6995446a344fbc1f937c15cb89e3aefbd4a6d2bb9fcca7f17bf7d6", "section_path": ["Server Applications", "pg_createsubscriber"], "commit_groups": [["6b5b7eae3"]], "identity_text": "Add pg_createsubscriber option -l/--logdir to redirect output to files (Gyan Sreejith, Hayato Kuroda)", "commit_aliases": ["6b5b7eae3"], "source_commits": ["6b5b7eae3"], "source_entry_id": "19.0/changes/140", "db_id": "d4045a5406f20edd80f4afb36641ff8d", "patch_ids": ["5ca4f034f954037d65826fbb18f304c7"], "statement_hash": "8bcfb97ab19aabb6e16e2c01ca080c96600c1f793f48c7ee4053b21ea39c66ea", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-de9f163055528b0e", "migration": false}, {"id": "19.0-c688d7984908ee25", "cves": [], "html": "<p>Restore support for <a href=\"/docs/19/installation-platform-notes.html#INSTALLATION-NOTES-AIX\" title=\"17.7.1.\u00a0AIX\"><span>AIX</span></a> (Aditya Kamath, Srirama Kucherlapati, Peter Eisentraut) <a href=\"https://postgr.es/c/ecae09725\">\u00a7</a> <a href=\"https://postgr.es/c/4a1b05caa\">\u00a7</a></p>\n<p>This uses <span>gcc</span> and only supports 64-bit builds.</p>", "text": "Restore support for AIX (Aditya Kamath, Srirama Kucherlapati, Peter Eisentraut) \u00a7 \u00a7 This uses gcc and only supports 64-bit builds.", "title": "Restore support for AIX", "commits": ["4a1b05caa", "ecae09725"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "b4463b153233af21d597be4fcbdf031464bda673e5fabf9518a42aa5837ffc2e", "section_path": ["Source Code"], "commit_groups": [["4a1b05caa"], ["ecae09725"]], "identity_text": "Restore support for AIX (Aditya Kamath, Srirama Kucherlapati, Peter Eisentraut) This uses gcc and only supports 64-bit builds.", "commit_aliases": ["4a1b05caa", "ecae09725"], "source_commits": ["4a1b05caa", "ecae09725"], "source_entry_id": "19.0/changes/141", "db_id": "6a27ddc3375c6984764ecda039ece59e", "patch_ids": ["5857f41edf90defcc01e2ef6ba8c8efd", "61ed97ddf02ca838435046082ca86c9b"], "statement_hash": "687cd0fe635007846610174a75a0244c0e48839ae17a04ccd4342e88c0d06288", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-c688d7984908ee25", "migration": false}, {"id": "19.0-dadd6439474c27a1", "cves": [], "html": "<p>Change <a href=\"/docs/19/installation-platform-notes.html#INSTALLATION-NOTES-SOLARIS\" title=\"17.7.5.\u00a0Solaris\"><span>Solaris</span></a> to use unnamed <acronym>POSIX</acronym> semaphores (Tom Lane) <a href=\"https://postgr.es/c/0123ce131\">\u00a7</a></p>\n<p>Previously it used System V semaphores.</p>", "text": "Change Solaris to use unnamed POSIX semaphores (Tom Lane) \u00a7 Previously it used System V semaphores.", "title": "Change Solaris to use unnamed POSIX semaphores", "commits": ["0123ce131"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "a1499b8a31c8a0cb25779d41b98189b0dd698dc9789a22791e3631ad3c609c53", "section_path": ["Source Code"], "commit_groups": [["0123ce131"]], "identity_text": "Change Solaris to use unnamed POSIX semaphores (Tom Lane) Previously it used System V semaphores.", "commit_aliases": ["0123ce131"], "source_commits": ["0123ce131"], "source_entry_id": "19.0/changes/142", "db_id": "5822454812a22c91153896d1170e12b8", "patch_ids": ["4f43e5ecb6f23020d60c39e4d56501b1"], "statement_hash": "8ec02317c271b59321e7294211e8e413e0fbc1ca6fbcc353ef9c10882bab95b0", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-dadd6439474c27a1", "migration": false}, {"id": "19.0-5b6a8a514a0374a0", "cves": [], "html": "<p>Require <a href=\"/docs/19/installation-platform-notes.html#INSTALLATION-NOTES-VISUAL-STUDIO\" title=\"17.7.6.\u00a0Visual Studio\"><span>Visual Studio 2019</span></a> or later (Peter Eisentraut) <a href=\"https://postgr.es/c/8fd9bb1d9\">\u00a7</a></p>", "text": "Require Visual Studio 2019 or later (Peter Eisentraut) \u00a7", "title": "Require Visual Studio 2019 or later", "commits": ["8fd9bb1d9"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "80c6a27889376fa7d9612c49327c9b27c38b186229a506936e0e6484010065af", "section_path": ["Source Code"], "commit_groups": [["8fd9bb1d9"]], "identity_text": "Require Visual Studio 2019 or later (Peter Eisentraut)", "commit_aliases": ["8fd9bb1d9"], "source_commits": ["8fd9bb1d9"], "source_entry_id": "19.0/changes/143", "db_id": "20208bf5986fd46d9b096ac8514bcd77", "patch_ids": ["eb1cb77c1a3dbaf28e4e4263775742ca"], "statement_hash": "54ed3353b823c253bb3788b37f3f5ab829631679cb77a1f673a26095d5dec794", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-5b6a8a514a0374a0", "migration": false}, {"id": "19.0-0938c090d15c6153", "cves": [], "html": "<p>Allow <a href=\"/docs/19/installation-platform-notes.html#INSTALLATION-NOTES-VISUAL-STUDIO\" title=\"17.7.6.\u00a0Visual Studio\"><span>MSVC</span></a> to create <a href=\"/docs/19/plpython.html\" title=\"Chapter\u00a044.\u00a0PL/Python \u2014 Python Procedural Language\"><span>PL/Python</span></a> using the Python Limited <acronym>API</acronym> (Bryan Green) <a href=\"https://postgr.es/c/2bc60f862\">\u00a7</a></p>", "text": "Allow MSVC to create PL/Python using the Python Limited API (Bryan Green) \u00a7", "title": "Allow MSVC to create PL/Python using the Python Limited API", "commits": ["2bc60f862"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "9581b6a75f4b8620021738658ae9e910ab302a30da4752f4d5979f97b3f6a0d8", "section_path": ["Source Code"], "commit_groups": [["2bc60f862"]], "identity_text": "Allow MSVC to create PL/Python using the Python Limited API (Bryan Green)", "commit_aliases": ["2bc60f862"], "source_commits": ["2bc60f862"], "source_entry_id": "19.0/changes/144", "db_id": "3132aa5d06c1125f55b01f534f78d766", "patch_ids": ["418873dc1d7268f95f33dfe2b5e16c14"], "statement_hash": "b508d54b21604e4809a76017556486869554e4ef75e07613acbe6a703bccfb31", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-0938c090d15c6153", "migration": false}, {"id": "19.0-7e8736a39535b229", "cves": [], "html": "<p>Allow building on AArch64 using <a href=\"/docs/19/installation-platform-notes.html#INSTALLATION-NOTES-VISUAL-STUDIO\" title=\"17.7.6.\u00a0Visual Studio\"><span>MSVC</span></a> (Niyas Sait, Greg Burd, Dave Cramer) <a href=\"https://postgr.es/c/a516b3f00\">\u00a7</a></p>", "text": "Allow building on AArch64 using MSVC (Niyas Sait, Greg Burd, Dave Cramer) \u00a7", "title": "Allow building on AArch64 using MSVC", "commits": ["a516b3f00"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "7485a82739a3d7f1133741c93e4926cb77848818b0431ab80fba090c5ece6e6d", "section_path": ["Source Code"], "commit_groups": [["a516b3f00"]], "identity_text": "Allow building on AArch64 using MSVC (Niyas Sait, Greg Burd, Dave Cramer)", "commit_aliases": ["a516b3f00"], "source_commits": ["a516b3f00"], "source_entry_id": "19.0/changes/145", "db_id": "d6325602478b636db3a5ec268cd93ecf", "patch_ids": ["16ee331f37ac78c9c891aded3cf696b3"], "statement_hash": "84047fa4d176146789f90f020396ed92c7727957e6ee704f3892da75d5c1c59b", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-7e8736a39535b229", "migration": false}, {"id": "19.0-8ed89c7b8bb4f20c", "cves": [], "html": "<p>Allow execution stack backtraces on <a href=\"/docs/19/installation-platform-notes.html#INSTALLATION-NOTES-VISUAL-STUDIO\" title=\"17.7.6.\u00a0Visual Studio\"><span>Windows</span></a> using <code>DbgHelp</code> (Bryan Green) <a href=\"https://postgr.es/c/65707ed9a\">\u00a7</a></p>", "text": "Allow execution stack backtraces on Windows using DbgHelp (Bryan Green) \u00a7", "title": "Allow execution stack backtraces on Windows using DbgHelp", "commits": ["65707ed9a"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "7a7b5d5a532fdf341e717a1946b247b8fa88a993d6e6071c7bbc64d1a3caf20a", "section_path": ["Source Code"], "commit_groups": [["65707ed9a"]], "identity_text": "Allow execution stack backtraces on Windows using DbgHelp (Bryan Green)", "commit_aliases": ["65707ed9a"], "source_commits": ["65707ed9a"], "source_entry_id": "19.0/changes/146", "db_id": "0c0390b852377967e700ba3b053f7379", "patch_ids": ["cd42e05672f6bd56ee23272b977b4e8c"], "statement_hash": "e6a82e3253cab1a1edc5d38a14f776a82fae9f4fb6fce4babe619a78f776ba2d", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-8ed89c7b8bb4f20c", "migration": false}, {"id": "19.0-09d850b430be5249", "cves": [], "html": "<p>Change the supported C language version to C11 (Peter Eisentraut) <a href=\"https://postgr.es/c/f5e0186f8\">\u00a7</a> <a href=\"https://postgr.es/c/4fbe01514\">\u00a7</a></p>\n<p>Previously C99 was used.</p>", "text": "Change the supported C language version to C11 (Peter Eisentraut) \u00a7 \u00a7 Previously C99 was used.", "title": "Change the supported C language version to C11", "commits": ["4fbe01514", "f5e0186f8"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "6fa166bd21f29b3ae899571190b15cdf0d9d078a17d8a7109f463975d9e7e046", "section_path": ["Source Code"], "commit_groups": [["4fbe01514"], ["f5e0186f8"]], "identity_text": "Change the supported C language version to C11 (Peter Eisentraut) Previously C99 was used.", "commit_aliases": ["4fbe01514", "f5e0186f8"], "source_commits": ["4fbe01514", "f5e0186f8"], "source_entry_id": "19.0/changes/147", "db_id": "6e3da601f5fd206642c361c0c5b14440", "patch_ids": ["59f1a29dc10249292062069111b7b597", "67efc794132ce8bbd000864dd3ff37ab"], "statement_hash": "5192ce40a6b72f5a4ca925ca157226fb7f5355bd0720cb51674314bff694b09f", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-09d850b430be5249", "migration": false}, {"id": "19.0-f7a91a34056f82c1", "cves": [], "html": "<p>Use standard C23 and C++ attributes if available (Peter Eisentraut) <a href=\"https://postgr.es/c/76f4b92ba\">\u00a7</a></p>", "text": "Use standard C23 and C++ attributes if available (Peter Eisentraut) \u00a7", "title": "Use standard C23 and C++ attributes if available", "commits": ["76f4b92ba"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "ba7a0225fc24aaecc9d6025a8c2ff34ce8c7b4284edfe41be8d97af6fd110343", "section_path": ["Source Code"], "commit_groups": [["76f4b92ba"]], "identity_text": "Use standard C23 and C++ attributes if available (Peter Eisentraut)", "commit_aliases": ["76f4b92ba"], "source_commits": ["76f4b92ba"], "source_entry_id": "19.0/changes/148", "db_id": "7f1a5c713dab5ac5bef306ef70947742", "patch_ids": ["7bad991024e595556f1c8e8c424a20ff"], "statement_hash": "1db1f95cb0bcf81dee57272ecc92a9719ae985b38083d8e3b8663020c192497c", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-f7a91a34056f82c1", "migration": false}, {"id": "19.0-ac6449596fd7fab3", "cves": [], "html": "<p>Use <acronym>AVX2</acronym> <acronym>CPU</acronym> instructions for calculating <a href=\"/docs/19/checksums.html\" title=\"28.2.\u00a0Data Checksums\">page checksums</a> (Matthew Sterrett, Andrew Kim) <a href=\"https://postgr.es/c/5e13b0f24\">\u00a7</a></p>", "text": "Use AVX2 CPU instructions for calculating page checksums (Matthew Sterrett, Andrew Kim) \u00a7", "title": "Use AVX2 CPU instructions for calculating page checksums", "commits": ["5e13b0f24"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "841ead82af2b0d1e0f6e90fa65c905a6e0fb89a7b72285db017907f9a4ad24e8", "section_path": ["Source Code"], "commit_groups": [["5e13b0f24"]], "identity_text": "Use AVX2 CPU instructions for calculating page checksums (Matthew Sterrett, Andrew Kim)", "commit_aliases": ["5e13b0f24"], "source_commits": ["5e13b0f24"], "source_entry_id": "19.0/changes/149", "db_id": "b0e9a5bbb0226b3e4353c8b3a392d7c3", "patch_ids": ["60413bcbd7997e1f98531f60a705a9f8"], "statement_hash": "a02f1fbc49765e52cbf6fc57492c6231557d3c5764c44f7b7c5735ae5bf22eac", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-ac6449596fd7fab3", "migration": false}, {"id": "19.0-ce2cb80d5f3dbbb4", "cves": [], "html": "<p>Use <span>ARM</span> Crypto Extension to Compute CRC32C (John Naylor) <a href=\"https://postgr.es/c/fbc57f2bc\">\u00a7</a></p>", "text": "Use ARM Crypto Extension to Compute CRC32C (John Naylor) \u00a7", "title": "Use ARM Crypto Extension to Compute CRC32C", "commits": ["fbc57f2bc"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "472ab2edd2029aa05418cf81ff56a97e72ab3da6bf9296568a818bae64d3ec2a", "section_path": ["Source Code"], "commit_groups": [["fbc57f2bc"]], "identity_text": "Use ARM Crypto Extension to Compute CRC32C (John Naylor)", "commit_aliases": ["fbc57f2bc"], "source_commits": ["fbc57f2bc"], "source_entry_id": "19.0/changes/150", "db_id": "ca3e3ffc4338eb1fadd9ee018569e34c", "patch_ids": ["1afa237ddb6466bb833bd77cf9ae7a9a"], "statement_hash": "4a8a7db7955a4301dbb9b2422d4732e9921698e2bb2a2ca27ca53c3dafa09ea3", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-ce2cb80d5f3dbbb4", "migration": false}, {"id": "19.0-a28b99546298d516", "cves": [], "html": "<p>Change <a href=\"/docs/19/functions-binarystring.html\" title=\"9.5.\u00a0Binary String Functions and Operators\"><code>hex_encode()</code></a> and <a href=\"/docs/19/functions-binarystring.html\" title=\"9.5.\u00a0Binary String Functions and Operators\"><code>hex_decode()</code></a> to use <acronym>SIMD</acronym> <acronym>CPU</acronym> instructions (Nathan Bossart, Chiranmoy Bhattacharya) <a href=\"https://postgr.es/c/ec8719ccb\">\u00a7</a></p>", "text": "Change hex_encode() and hex_decode() to use SIMD CPU instructions (Nathan Bossart, Chiranmoy Bhattacharya) \u00a7", "title": "Change hex_encode() and hex_decode() to use SIMD CPU instructions", "commits": ["ec8719ccb"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "d95df37bd5729b9d10de352c44f0854166d46664d292061fa529cd67dd922ee2", "section_path": ["Source Code"], "commit_groups": [["ec8719ccb"]], "identity_text": "Change hex_encode() and hex_decode() to use SIMD CPU instructions (Nathan Bossart, Chiranmoy Bhattacharya)", "commit_aliases": ["ec8719ccb"], "source_commits": ["ec8719ccb"], "source_entry_id": "19.0/changes/151", "db_id": "11741fba4debbe0ad890c12a499c172a", "patch_ids": ["fa41b618cf46f34c51f7d040a06ab150"], "statement_hash": "4b12d43c199dd5993aef7e9871e98b37c6cad116d9729e1cadde4e1371f17e9c", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-a28b99546298d516", "migration": false}, {"id": "19.0-4532677aa54568ee", "cves": [], "html": "<p>Require <a href=\"/docs/19/install-meson.html\" title=\"17.4.\u00a0Building and Installation with Meson\"><span>Meson</span></a> version 0.57.2 or later (Peter Eisentraut) <a href=\"https://postgr.es/c/f039c2244\">\u00a7</a></p>", "text": "Require Meson version 0.57.2 or later (Peter Eisentraut) \u00a7", "title": "Require Meson version 0.57.2 or later", "commits": ["f039c2244"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "3cd9a49d741e0f67fe706a8766b89cfc20b09a4e02d0b837ab45fd98243392a0", "section_path": ["Source Code"], "commit_groups": [["f039c2244"]], "identity_text": "Require Meson version 0.57.2 or later (Peter Eisentraut)", "commit_aliases": ["f039c2244"], "source_commits": ["f039c2244"], "source_entry_id": "19.0/changes/152", "db_id": "dd79d2868c10a6351f8e573e735e76f5", "patch_ids": ["ec6352d779ee4bca9abdf1d381ffcd25"], "statement_hash": "090e6e109cb9a4eeb7cd4230829da972d7229ce411856f29f0e3d563ad71e20e", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-4532677aa54568ee", "migration": false}, {"id": "19.0-2c7cc32ec00cfe7b", "cves": [], "html": "<p>Add <span>Meson</span> option to build both shared and static libraries, or only shared (Peter Eisentraut) <a href=\"https://postgr.es/c/78727dcba\">\u00a7</a></p>", "text": "Add Meson option to build both shared and static libraries, or only shared (Peter Eisentraut) \u00a7", "title": "Add Meson option to build both shared and static libraries, or only shared", "commits": ["78727dcba"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "46c3dea66afd3f6bdbe9c0f23cab3fc07f7c923b8a54cc68a1d0dec5d5a4b6ca", "section_path": ["Source Code"], "commit_groups": [["78727dcba"]], "identity_text": "Add Meson option to build both shared and static libraries, or only shared (Peter Eisentraut)", "commit_aliases": ["78727dcba"], "source_commits": ["78727dcba"], "source_entry_id": "19.0/changes/153", "db_id": "eb1383d7fd40f7f1c4dc0376067f3669", "patch_ids": ["e208dab0088868ff672bb9a88714796f"], "statement_hash": "05e4f24b484569d138bb3df3ce06e17134b1f4f827ed5f5579b85a398b9b9a4b", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-2c7cc32ec00cfe7b", "migration": false}, {"id": "19.0-67d0062ccf19d152", "cves": [], "html": "<p>Update <a href=\"/docs/19/collation.html#COLLATION-MANAGING-STANDARD\" title=\"23.2.2.1.\u00a0Standard Collations\">Unicode</a> data to version 17.0.0 (Peter Eisentraut) <a href=\"https://postgr.es/c/57ee39795\">\u00a7</a></p>", "text": "Update Unicode data to version 17.0.0 (Peter Eisentraut) \u00a7", "title": "Update Unicode data to version 17.0.0", "commits": ["57ee39795"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "43664f1ed399ca43ebb2d6353c0ffd74946e74c4ce11f5c1fd3f1d2301438dbc", "section_path": ["Source Code"], "commit_groups": [["57ee39795"]], "identity_text": "Update Unicode data to version 17.0.0 (Peter Eisentraut)", "commit_aliases": ["57ee39795"], "source_commits": ["57ee39795"], "source_entry_id": "19.0/changes/154", "db_id": "d7e2c494563fe17c4ee00266fa53a520", "patch_ids": ["c59ccd505e5b66c373128a4ab143e4ce"], "statement_hash": "c94d52c3540a007227d0d2130851f8a92ba5cc5337ccb5c9d1d3728e6f706af6", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-67d0062ccf19d152", "migration": false}, {"id": "19.0-0e94b3abdf93bcc7", "cves": [], "html": "<p>Add hooks <code>planner_setup_hook</code>, <code>planner_shutdown_hook</code>, <code>joinrel_setup_hook</code>, and <code>join_path_setup_hook</code> (Robert Haas) <a href=\"https://postgr.es/c/94f3ad396\">\u00a7</a> <a href=\"https://postgr.es/c/4020b370f\">\u00a7</a></p>", "text": "Add hooks planner_setup_hook, planner_shutdown_hook, joinrel_setup_hook, and join_path_setup_hook (Robert Haas) \u00a7 \u00a7", "title": "Add hooks planner_setup_hook, planner_shutdown_hook, joinrel_setup_hook, and join_path_setup_hook", "commits": ["4020b370f", "94f3ad396"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "05cdfd200ef8de7716d99f8e741d2df36e1765ba13362348e7c5ed7c703e88f8", "section_path": ["Source Code"], "commit_groups": [["4020b370f"], ["94f3ad396"]], "identity_text": "Add hooks planner_setup_hook, planner_shutdown_hook, joinrel_setup_hook, and join_path_setup_hook (Robert Haas)", "commit_aliases": ["4020b370f", "94f3ad396"], "source_commits": ["4020b370f", "94f3ad396"], "source_entry_id": "19.0/changes/155", "db_id": "c400fe8cf5b79034bc335844fe53d2a2", "patch_ids": ["2b28568b9f48f2a8f041078dc99b2900", "8238396b0c8cd2dbf766f04e72d51671"], "statement_hash": "caf4233879c35f320faf32f86cb11ffb4e5b8913b0e6a0294ae8e719d73f90b7", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-0e94b3abdf93bcc7", "migration": false}, {"id": "19.0-2b9d4493a49934aa", "cves": [], "html": "<p>Allow extensions to replace <a href=\"/docs/19/xfunc-sql.html#XFUNC-SQL-FUNCTIONS-RETURNING-SET\" title=\"36.5.9.\u00a0SQL Functions Returning Sets\">set-returning functions</a> in the <code>FROM</code> clause with <acronym>SQL</acronym> queries (Paul A. Jungwirth) <a href=\"https://postgr.es/c/b140c8d7a\">\u00a7</a></p>", "text": "Allow extensions to replace set-returning functions in the FROM clause with SQL queries (Paul A. Jungwirth) \u00a7", "title": "Allow extensions to replace set-returning functions in the FROM clause with SQL queries", "commits": ["b140c8d7a"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "cbdf8ec5f46bd310380c467a1391aa7d8475e6b2890c5d88bd095207fa3806cc", "section_path": ["Source Code"], "commit_groups": [["b140c8d7a"]], "identity_text": "Allow extensions to replace set-returning functions in the FROM clause with SQL queries (Paul A. Jungwirth)", "commit_aliases": ["b140c8d7a"], "source_commits": ["b140c8d7a"], "source_entry_id": "19.0/changes/156", "db_id": "ea6d1bcac820e221ce2482f7ae671de0", "patch_ids": ["e01cd170f7b7ff9f5489103cfc1366ee"], "statement_hash": "21ec7b0f04a95bf4da4d76c8fee1e8081c07bc766752164eb365c3d9aebeb8f2", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-2b9d4493a49934aa", "migration": false}, {"id": "19.0-b67c148ffb16bbcf", "cves": [], "html": "<p>Make <a href=\"/docs/19/functions-info.html#FUNCTIONS-INFO-SNAPSHOT\" title=\"9.28.8.\u00a0Transaction ID and Snapshot Information Functions\">multixid members</a> 64-bit (Maxim Orlov) <a href=\"https://postgr.es/c/bd8d9c9bd\">\u00a7</a></p>", "text": "Make multixid members 64-bit (Maxim Orlov) \u00a7", "title": "Make multixid members 64-bit", "commits": ["bd8d9c9bd"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "3465fedcf0b82edf1b7bfbc2da01dd7c9ec73b07547f36dcb6b7cf816e3f91b2", "section_path": ["Source Code"], "commit_groups": [["bd8d9c9bd"]], "identity_text": "Make multixid members 64-bit (Maxim Orlov)", "commit_aliases": ["bd8d9c9bd"], "source_commits": ["bd8d9c9bd"], "source_entry_id": "19.0/changes/157", "db_id": "f94c0ae076ab514a80afc69faa028ea0", "patch_ids": ["192db2703f79d48c16fa25b3227ae71a"], "statement_hash": "b5eb89f3e7ec81151c1887651a26784eed70619fcc43136255213d78407aa72c", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-b67c148ffb16bbcf", "migration": false}, {"id": "19.0-5650ebe4cfdffcf7", "cves": [], "html": "<p>Change function prototypes to use <code>uint*</code> instead of <code>bit*</code> typedefs (Nathan Bossart) <a href=\"https://postgr.es/c/bab2f27ea\">\u00a7</a></p>", "text": "Change function prototypes to use uint* instead of bit* typedefs (Nathan Bossart) \u00a7", "title": "Change function prototypes to use uint* instead of bit* typedefs", "commits": ["bab2f27ea"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "b320cd9d35c2a84a0b102b169245ebd7471663e05db3afd1bf87fb5937ffdd66", "section_path": ["Source Code"], "commit_groups": [["bab2f27ea"]], "identity_text": "Change function prototypes to use uint* instead of bit* typedefs (Nathan Bossart)", "commit_aliases": ["bab2f27ea"], "source_commits": ["bab2f27ea"], "source_entry_id": "19.0/changes/158", "db_id": "88aea108cbad74f329ed34bbb24d5b58", "patch_ids": ["f2f586554bfe840eeeb6fed10442b61c"], "statement_hash": "1f0a26efe6da8c4a16f300de65dcbc3a59a88e212e097ce5974576ea42c2958c", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-5650ebe4cfdffcf7", "migration": false}, {"id": "19.0-3a1ceba75f3157af", "cves": [], "html": "<p>Allow <a href=\"/docs/19/logicaldecoding-output-plugin.html#LOGICALDECODING-PGOUTPUT\" title=\"47.6.1.\u00a0pgoutput \u2014 Standard Logical Decoding Output Plugin\">logical decoding plugins</a> to specify if they do not access shared catalogs (Antonin Houska) <a href=\"https://postgr.es/c/0d3dba38c\">\u00a7</a></p>", "text": "Allow logical decoding plugins to specify if they do not access shared catalogs (Antonin Houska) \u00a7", "title": "Allow logical decoding plugins to specify if they do not access shared catalogs", "commits": ["0d3dba38c"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "72aecd4c45fa67483121399f05e3fba5e37d22a61fbc53317b3d25e399e58d94", "section_path": ["Source Code"], "commit_groups": [["0d3dba38c"]], "identity_text": "Allow logical decoding plugins to specify if they do not access shared catalogs (Antonin Houska)", "commit_aliases": ["0d3dba38c"], "source_commits": ["0d3dba38c"], "source_entry_id": "19.0/changes/159", "db_id": "b395b8b40db973ba1f42e8f3bc96ef65", "patch_ids": ["20a3361210f5c3f5967de899d879e2a4"], "statement_hash": "5e0711ae12acdadfaaabe4eddde6e6bdb9c618b67a4a9ef1b7a92987e17bffe1", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-3a1ceba75f3157af", "migration": false}, {"id": "19.0-3f4066e65cf8a2d9", "cves": [], "html": "<p>Allow OAuth validators to supply failure details (Jacob Champion) <a href=\"https://postgr.es/c/d438a3659\">\u00a7</a></p>\n<p>This is done by setting the <a href=\"/docs/19/oauth-validator-callbacks.html#OAUTH-VALIDATOR-CALLBACK-VALIDATE\" title=\"50.3.2.\u00a0Validate Callback\"><code>ValidatorModuleResult</code></a> structure member error_detail.</p>", "text": "Allow OAuth validators to supply failure details (Jacob Champion) \u00a7 This is done by setting the ValidatorModuleResult structure member error_detail.", "title": "Allow OAuth validators to supply failure details", "commits": ["d438a3659"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "a3de1b0d096f969b9a2b8c9fb291db6bf60208f6c0c2ca53640cb33ddb1acac0", "section_path": ["Source Code"], "commit_groups": [["d438a3659"]], "identity_text": "Allow OAuth validators to supply failure details (Jacob Champion) This is done by setting the ValidatorModuleResult structure member error_detail.", "commit_aliases": ["d438a3659"], "source_commits": ["d438a3659"], "source_entry_id": "19.0/changes/160", "db_id": "762b28bb17d68d5323dc9407c5a67588", "patch_ids": ["15e4a19f6ece110d3ecf50e9e73c4a10"], "statement_hash": "cf0f5b56015fa5dfda02cf1d6cea35cdf4a9aad1376008543846a923ecca2dc1", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-3f4066e65cf8a2d9", "migration": false}, {"id": "19.0-600e305ffcdb010a", "cves": [], "html": "<p>Add simplified and improved shared memory registration function <a href=\"/docs/19/xfunc-c.html#XFUNC-SHARED-ADDIN-AT-STARTUP\" title=\"36.10.11.1.\u00a0Requesting Shared Memory at Startup\"><code>ShmemRequestStruct()</code></a> (Heikki Linnakangas, Ashutosh Bapat) <a href=\"https://postgr.es/c/283e823f9\">\u00a7</a></p>\n<p>Functions <a href=\"/docs/19/xfunc-c.html#XFUNC-SHARED-ADDIN-AT-STARTUP\" title=\"36.10.11.1.\u00a0Requesting Shared Memory at Startup\"><code>ShmemInitStruct()</code></a> and <a href=\"/docs/19/xfunc-c.html#XFUNC-SHARED-ADDIN-AT-STARTUP\" title=\"36.10.11.1.\u00a0Requesting Shared Memory at Startup\"><code>ShmemInitHash()</code></a> remain for backward compatibility.</p>", "text": "Add simplified and improved shared memory registration function ShmemRequestStruct() (Heikki Linnakangas, Ashutosh Bapat) \u00a7 Functions ShmemInitStruct() and ShmemInitHash() remain for backward compatibility.", "title": "Add simplified and improved shared memory registration function ShmemRequestStruct()", "commits": ["283e823f9"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "19905fe4b2d189c747872544da1ad71d195c0ca3c693c146b3a186c287a0704b", "section_path": ["Source Code"], "commit_groups": [["283e823f9"]], "identity_text": "Add simplified and improved shared memory registration function ShmemRequestStruct() (Heikki Linnakangas, Ashutosh Bapat) Functions ShmemInitStruct() and ShmemInitHash() remain for backward compatibility.", "commit_aliases": ["283e823f9"], "source_commits": ["283e823f9"], "source_entry_id": "19.0/changes/161", "db_id": "cc4f0bc9ac955e96b4d6dfebd4746b83", "patch_ids": ["b122528672e367bac2442d8f2ce8108b"], "statement_hash": "731f5a06e4b9dcb066b51d4afcb9e0de5c1fac934a3d9c4972ee8ae3bef481bc", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-600e305ffcdb010a", "migration": false}, {"id": "19.0-63c3e5fe89aa981d", "cves": [], "html": "<p>Add server variable <a href=\"/docs/19/runtime-config-preset.html#GUC-DEBUG-EXEC-BACKEND\"><code>debug_exec_backend</code></a> to report how parameters are passed to new backends (Daniel Gustafsson) <a href=\"https://postgr.es/c/b3fe098d3\">\u00a7</a></p>", "text": "Add server variable debug_exec_backend to report how parameters are passed to new backends (Daniel Gustafsson) \u00a7", "title": "Add server variable debug_exec_backend to report how parameters are passed to new backends", "commits": ["b3fe098d3"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "ddcc37cfe5066223ded4c597165664a47f8df36e48c9e12d782d9cafb9449f6b", "section_path": ["Source Code"], "commit_groups": [["b3fe098d3"]], "identity_text": "Add server variable debug_exec_backend to report how parameters are passed to new backends (Daniel Gustafsson)", "commit_aliases": ["b3fe098d3"], "source_commits": ["b3fe098d3"], "source_entry_id": "19.0/changes/162", "db_id": "f56c91e7ea9e47d462e10768e31bde92", "patch_ids": ["6996a756a2209127ea911906cc212ee5"], "statement_hash": "57e78bd212bc321f09c4b3268a65ed26ffdfffe64d790f1fad36b78c18194798", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-63c3e5fe89aa981d", "migration": false}, {"id": "19.0-2a1150b2757041ab", "cves": [], "html": "<p>Add documentation section about <a href=\"/docs/19/ddl-temporal-tables.html\" title=\"5.7.\u00a0Temporal Tables\">temporal tables</a> (Paul A. Jungwirth) <a href=\"https://postgr.es/c/e4d8a2af0\">\u00a7</a></p>", "text": "Add documentation section about temporal tables (Paul A. Jungwirth) \u00a7", "title": "Add documentation section about temporal tables", "commits": ["e4d8a2af0"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "cfa3938488ba5a382ebbf3ac30a262741cbc781d722187bf310f0b6d7a746f5f", "section_path": ["Source Code"], "commit_groups": [["e4d8a2af0"]], "identity_text": "Add documentation section about temporal tables (Paul A. Jungwirth)", "commit_aliases": ["e4d8a2af0"], "source_commits": ["e4d8a2af0"], "source_entry_id": "19.0/changes/163", "db_id": "ba840a11fad1344360a49032bc6c9bf0", "patch_ids": ["6199d082f1b7ffe83b1542803732c5b0"], "statement_hash": "7fce6be69bf094f60533b06c88d696d5fc0124240941764129ee15cf74310d38", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-2a1150b2757041ab", "migration": false}, {"id": "19.0-3892358a8de14030", "cves": [], "html": "<p>Document the environment variables that control the <a href=\"/docs/19/regress-run.html#REGRESS-RUN-PATH-SUBSTITUTION\" title=\"31.1.6.\u00a0Path Substitution\">regression tests</a> (Michael Paquier) <a href=\"https://postgr.es/c/02976b0a1\">\u00a7</a></p>", "text": "Document the environment variables that control the regression tests (Michael Paquier) \u00a7", "title": "Document the environment variables that control the regression tests", "commits": ["02976b0a1"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "3c6d19ffa21c52c77bb6943f87c696d892441f56b6aa96541174e0ced30140b3", "section_path": ["Source Code"], "commit_groups": [["02976b0a1"]], "identity_text": "Document the environment variables that control the regression tests (Michael Paquier)", "commit_aliases": ["02976b0a1"], "source_commits": ["02976b0a1"], "source_entry_id": "19.0/changes/164", "db_id": "6e2a6dcc65b08df25684b4c976e8261f", "patch_ids": ["db371fbd69214646dc429f89122f5b44"], "statement_hash": "d64cc4af42817101fefe650bc306c67f8a5f2ed7253544890808aa96b29b6216", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-3892358a8de14030", "migration": false}, {"id": "19.0-ee879bd44886d9ad", "cves": [], "html": "<p>Update documented <a href=\"/docs/19/server-start.html\" title=\"18.3.\u00a0Starting the Database Server\">systemd example</a> to include a restart setting (Andrew Jackson) <a href=\"https://postgr.es/c/b30656ce0\">\u00a7</a></p>", "text": "Update documented systemd example to include a restart setting (Andrew Jackson) \u00a7", "title": "Update documented systemd example to include a restart setting", "commits": ["b30656ce0"], "section": "Source Code", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-SOURCE-CODE", "source_hash": "9e5278ec18324c26f53d4682b7cac16a25e724bdefb3a51af29c16622606160b", "section_path": ["Source Code"], "commit_groups": [["b30656ce0"]], "identity_text": "Update documented systemd example to include a restart setting (Andrew Jackson)", "commit_aliases": ["b30656ce0"], "source_commits": ["b30656ce0"], "source_entry_id": "19.0/changes/165", "db_id": "e0b8431931452801e2bf951c6fc029bf", "patch_ids": ["d5055a62c0b50ca7417a6aee5168d0cc"], "statement_hash": "5defbf603db0b450d9792692393d17b48cda3fae0f0d7e20de6bf6a5ab9fdeda", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-ee879bd44886d9ad", "migration": false}, {"id": "19.0-4835c6d957950079", "cves": [], "html": "<p>Add <a href=\"/docs/19/pgplanadvice.html\" title=\"F.30.\u00a0pg_plan_advice \u2014 help the planner get the right plan\">pg_plan_advice</a> module to stabilize and control planner decisions (Robert Haas) <a href=\"https://postgr.es/c/5883ff30b\">\u00a7</a> <a href=\"https://postgr.es/c/6455e55b0\">\u00a7</a></p>", "text": "Add pg_plan_advice module to stabilize and control planner decisions (Robert Haas) \u00a7 \u00a7", "title": "Add pg_plan_advice module to stabilize and control planner decisions", "commits": ["5883ff30b", "6455e55b0"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MODULES", "source_hash": "97924ebded069e94b969b2483dadf89dfcd806dca8ed03452e99ded2ac8636ca", "section_path": ["Additional Modules"], "commit_groups": [["5883ff30b"], ["6455e55b0"]], "identity_text": "Add pgplanadvice module to stabilize and control planner decisions (Robert Haas)", "commit_aliases": ["5883ff30b", "6455e55b0"], "source_commits": ["5883ff30b", "6455e55b0"], "source_entry_id": "19.0/changes/166", "db_id": "4ac958c4dfcd715caf1af5422620f505", "patch_ids": ["56d63f5186ca503452a6223c6f729bc0", "b1613f7f0a064021e597c08a0f245a49"], "statement_hash": "31e3ff58f47fcca7b27455c485f5c16cf539a34db72635e763654a43b2f9850c", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-4835c6d957950079", "migration": false}, {"id": "19.0-99f5eede3e770ccc", "cves": [], "html": "<p>Add extension <a href=\"/docs/19/pgstashadvice.html\" title=\"F.33.\u00a0pg_stash_advice \u2014 store and automatically apply plan advice\">pg_stash_advice</a> to allow per-query-id advice to be specified (Robert Haas, Lukas Fittl) <a href=\"https://postgr.es/c/e8ec19aa3\">\u00a7</a> <a href=\"https://postgr.es/c/c10edb102\">\u00a7</a></p>", "text": "Add extension pg_stash_advice to allow per-query-id advice to be specified (Robert Haas, Lukas Fittl) \u00a7 \u00a7", "title": "Add extension pg_stash_advice to allow per-query-id advice to be specified", "commits": ["c10edb102", "e8ec19aa3"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MODULES", "source_hash": "cd73a2b0c2b7e3e3ea5c580c529aed14af5174fcef7624106cfc364f9b712af8", "section_path": ["Additional Modules"], "commit_groups": [["c10edb102"], ["e8ec19aa3"]], "identity_text": "Add extension pgstashadvice to allow per-query-id advice to be specified (Robert Haas, Lukas Fittl)", "commit_aliases": ["c10edb102", "e8ec19aa3"], "source_commits": ["c10edb102", "e8ec19aa3"], "source_entry_id": "19.0/changes/167", "db_id": "45e851918f3743e4972a5ecf2ab78f59", "patch_ids": ["9da8a567937023cd2a129fdfde982f00", "f4a18a80b979077db607a9e188bc8ab2"], "statement_hash": "d9820baa158db7d0d39f696739da9f24dc384ddfeff94eb80a3383616be8699a", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-99f5eede3e770ccc", "migration": false}, {"id": "19.0-763cd3481e3c7780", "cves": [], "html": "<p>Show sizes of <a href=\"/docs/19/sql-fetch.html\" title=\"FETCH\"><code>FETCH</code></a> queries as constants in <a href=\"/docs/19/pgstatstatements.html\" title=\"F.34.\u00a0pg_stat_statements \u2014 track statistics of SQL planning and execution\">pg_stat_statements</a> (Sami Imseih) <a href=\"https://postgr.es/c/bee23ea4d\">\u00a7</a></p>\n<p>Fetches of different sizes will now be grouped together in <a href=\"/docs/19/pgstatstatements.html\" title=\"F.34.\u00a0pg_stat_statements \u2014 track statistics of SQL planning and execution\">pg_stat_statements</a> output.</p>", "text": "Show sizes of FETCH queries as constants in pg_stat_statements (Sami Imseih) \u00a7 Fetches of different sizes will now be grouped together in pg_stat_statements output.", "title": "Show sizes of FETCH queries as constants in pg_stat_statements", "commits": ["bee23ea4d"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MODULES", "source_hash": "d85a64e309179f392fedcc0a28e405580913b93baeb95870909f8738d112e1c4", "section_path": ["Additional Modules"], "commit_groups": [["bee23ea4d"]], "identity_text": "Show sizes of FETCH queries as constants in pgstatstatements (Sami Imseih) Fetches of different sizes will now be grouped together in pgstatstatements output.", "commit_aliases": ["bee23ea4d"], "source_commits": ["bee23ea4d"], "source_entry_id": "19.0/changes/168", "db_id": "482299b237fbc46a6a50bdb47b208788", "patch_ids": ["d97e227d21ad315d6b87301eb67684d9"], "statement_hash": "56b6507c53757966822dc5b02b086499fcab94db3afe43cf0b16f70fd821aff5", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-763cd3481e3c7780", "migration": false}, {"id": "19.0-3e117bad67fe6211", "cves": [], "html": "<p>Add <a href=\"/docs/19/sql-prepare.html\" title=\"PREPARE\">generic and custom plan</a> counts to <a href=\"/docs/19/pgstatstatements.html\" title=\"F.34.\u00a0pg_stat_statements \u2014 track statistics of SQL planning and execution\">pg_stat_statements</a> (Sami Imseih) <a href=\"https://postgr.es/c/3357471cf\">\u00a7</a></p>", "text": "Add generic and custom plan counts to pg_stat_statements (Sami Imseih) \u00a7", "title": "Add generic and custom plan counts to pg_stat_statements", "commits": ["3357471cf"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MODULES", "source_hash": "db449b9cf7723032feb95c4a5892ceae6a4041ae1341f3885e0e2384a70acc9a", "section_path": ["Additional Modules"], "commit_groups": [["3357471cf"]], "identity_text": "Add generic and custom plan counts to pgstatstatements (Sami Imseih)", "commit_aliases": ["3357471cf"], "source_commits": ["3357471cf"], "source_entry_id": "19.0/changes/169", "db_id": "8b533dfc0cb31323a0af65fc5498095a", "patch_ids": ["a68aa4c27f58910e3aff221fa91fe3d1"], "statement_hash": "6572579d1d4bb8fcbd1defa3afe48fb510f4f443e55a8c0caa51da2f257f46f3", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-3e117bad67fe6211", "migration": false}, {"id": "19.0-51474e742fd9aa52", "cves": [], "html": "<p>Refactor <a href=\"/docs/19/pgbuffercache.html\" title=\"F.25.\u00a0pg_buffercache \u2014 inspect PostgreSQL buffer cache state\">pg_buffercache</a> reporting of shared memory mapping (Bertrand Drouvot) <a href=\"https://postgr.es/c/4b203d499\">\u00a7</a></p>\n<p>New function <code>pg_buffercache_os_pages()</code> and system view <code>pg_buffercache_os_pages</code> allow reporting of shared memory mapping; the function optionally includes <acronym>NUMA</acronym> details. Function <code>pg_buffercache_numa_pages()</code> remains for backward compatibility.</p>", "text": "Refactor pg_buffercache reporting of shared memory mapping (Bertrand Drouvot) \u00a7 New function pg_buffercache_os_pages() and system view pg_buffercache_os_pages allow reporting of shared memory mapping; the function optionally includes NUMA details. Function pg_buffercache_numa_pages() remains for backward compatibility.", "title": "Refactor pg_buffercache reporting of shared memory mapping", "commits": ["4b203d499"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MODULES", "source_hash": "cdb543d6f694b6094914686a17370359ab98788faf039e140086b20ed6b356c8", "section_path": ["Additional Modules"], "commit_groups": [["4b203d499"]], "identity_text": "Refactor pgbuffercache reporting of shared memory mapping (Bertrand Drouvot) New function pg_buffercache_os_pages() and system view pg_buffercache_os_pages allow reporting of shared memory mapping; the function optionally includes NUMA details. Function pg_buffercache_numa_pages() remains for backward compatibility.", "commit_aliases": ["4b203d499"], "source_commits": ["4b203d499"], "source_entry_id": "19.0/changes/170", "db_id": "326f982a8e5fdb76f61bffa174bc89ff", "patch_ids": ["dc1afd745ffc505feaf1056588cd0ce0"], "statement_hash": "c3d16efbfd858190d76129f49a1cf3a500efcbd1abc04e1f51e615f76be58ebb", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-51474e742fd9aa52", "migration": false}, {"id": "19.0-cf6957d8e6e3d734", "cves": [], "html": "<p>Add functions to <a href=\"/docs/19/pgbuffercache.html\" title=\"F.25.\u00a0pg_buffercache \u2014 inspect PostgreSQL buffer cache state\">pg_buffercache</a> to mark buffers as dirty (Nazir Bilal Yavuz) <a href=\"https://postgr.es/c/9ccc049df\">\u00a7</a></p>\n<p>The functions are <code>pg_buffercache_mark_dirty()</code>, <code>pg_buffercache_mark_dirty_relation()</code>, and <code>pg_buffercache_mark_dirty_all()</code>.</p>", "text": "Add functions to pg_buffercache to mark buffers as dirty (Nazir Bilal Yavuz) \u00a7 The functions are pg_buffercache_mark_dirty(), pg_buffercache_mark_dirty_relation(), and pg_buffercache_mark_dirty_all().", "title": "Add functions to pg_buffercache to mark buffers as dirty", "commits": ["9ccc049df"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MODULES", "source_hash": "bc1d2a6288d65506efe775c61d0dd80807e28e7ca8926ab2785db1430566dc50", "section_path": ["Additional Modules"], "commit_groups": [["9ccc049df"]], "identity_text": "Add functions to pgbuffercache to mark buffers as dirty (Nazir Bilal Yavuz) The functions are pg_buffercache_mark_dirty(), pg_buffercache_mark_dirty_relation(), and pg_buffercache_mark_dirty_all().", "commit_aliases": ["9ccc049df"], "source_commits": ["9ccc049df"], "source_entry_id": "19.0/changes/171", "db_id": "5ae5dd2be3aa3ff0706e77085b7bcfb3", "patch_ids": ["24999546e7c8d92a9f164cda3b794684"], "statement_hash": "bcca474d77e8166e4d3e2b856552a9301aa699dae912762b4edaf916d57dbbae", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-cf6957d8e6e3d734", "migration": false}, {"id": "19.0-d6327f06b92f9d9c", "cves": [], "html": "<p>Allow pushdown of array comparisons in <a href=\"/docs/19/sql-prepare.html\" title=\"PREPARE\">prepared statements</a> to <a href=\"/docs/19/postgres-fdw.html\" title=\"F.40.\u00a0postgres_fdw \u2014 access data stored in external PostgreSQL servers\">postgres_fdw</a> foreign servers (Alexander Pyhalov) <a href=\"https://postgr.es/c/62c3b4cd9\">\u00a7</a></p>", "text": "Allow pushdown of array comparisons in prepared statements to postgres_fdw foreign servers (Alexander Pyhalov) \u00a7", "title": "Allow pushdown of array comparisons in prepared statements to postgres_fdw foreign servers", "commits": ["62c3b4cd9"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MODULES", "source_hash": "bf6501c55945ab2cfc9cfe31aa3a3cb39698957c6cba992abf2bbd630f5ec772", "section_path": ["Additional Modules"], "commit_groups": [["62c3b4cd9"]], "identity_text": "Allow pushdown of array comparisons in prepared statements to postgres-fdw foreign servers (Alexander Pyhalov)", "commit_aliases": ["62c3b4cd9"], "source_commits": ["62c3b4cd9"], "source_entry_id": "19.0/changes/172", "db_id": "7c1a1048290344a4c12534360c09ece8", "patch_ids": ["f62f187297629adfd7fcf55390ff9b7f"], "statement_hash": "2fad95447b0442a3e310ff1b8fc810cccdbd60f2879adb6fdd18627a87ff3b4a", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-d6327f06b92f9d9c", "migration": false}, {"id": "19.0-d428cbc5f59b7b81", "cves": [], "html": "<p>Allow the retrieval of statistics from <a href=\"/docs/19/sql-createforeigndatawrapper.html\" title=\"CREATE FOREIGN DATA WRAPPER\">foreign data wrapper servers</a> (Corey Huinker, Etsuro Fujita) <a href=\"https://postgr.es/c/28972b6fc\">\u00a7</a> <a href=\"https://postgr.es/c/48965e146\">\u00a7</a></p>\n<p>This is enabled for <a href=\"/docs/19/postgres-fdw.html\" title=\"F.40.\u00a0postgres_fdw \u2014 access data stored in external PostgreSQL servers\">postgres_fdw</a> by using the option <code>import_stats</code>. The default is for <a href=\"/docs/19/sql-analyze.html\" title=\"ANALYZE\"><code>ANALYZE</code></a> to retrieve rows from the remote server to locally generate statistics.</p>", "text": "Allow the retrieval of statistics from foreign data wrapper servers (Corey Huinker, Etsuro Fujita) \u00a7 \u00a7 This is enabled for postgres_fdw by using the option import_stats. The default is for ANALYZE to retrieve rows from the remote server to locally generate statistics.", "title": "Allow the retrieval of statistics from foreign data wrapper servers", "commits": ["28972b6fc", "48965e146"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MODULES", "source_hash": "c491a770f56fc770088cd79a575cd702765358d6bb67a46710a23f97506d0116", "section_path": ["Additional Modules"], "commit_groups": [["28972b6fc"], ["48965e146"]], "identity_text": "Allow the retrieval of statistics from foreign data wrapper servers (Corey Huinker, Etsuro Fujita) This is enabled for postgres-fdw by using the option import_stats. The default is for ANALYZE to retrieve rows from the remote server to locally generate statistics.", "commit_aliases": ["28972b6fc", "48965e146"], "source_commits": ["28972b6fc", "48965e146"], "source_entry_id": "19.0/changes/173", "db_id": "e5338180d766356be9f67fddaeae1994", "patch_ids": ["0a3e4f8c65c86bee4910df07d96c9f0f", "0fbcb5c78b6ff5e00b109690209d5e8a"], "statement_hash": "d6299e58b604a812f27e3f536f8f239cf792bbb9bb8a9bb973017b5a5bb6a8f1", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-d428cbc5f59b7b81", "migration": false}, {"id": "19.0-273e78d2da55ca39", "cves": [], "html": "<p>Allow <a href=\"/docs/19/file-fdw.html\" title=\"F.15.\u00a0file_fdw \u2014 access data files in the server's file system\">file_fdw</a> to read files or program output that uses multi-line headers (Shinya Kato) <a href=\"https://postgr.es/c/26cb14aea\">\u00a7</a></p>", "text": "Allow file_fdw to read files or program output that uses multi-line headers (Shinya Kato) \u00a7", "title": "Allow file_fdw to read files or program output that uses multi-line headers", "commits": ["26cb14aea"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MODULES", "source_hash": "5711000ea7d7b32f82875c01a7d9125ecc2fd19b31a8bc9e4f83fa7d14d22f93", "section_path": ["Additional Modules"], "commit_groups": [["26cb14aea"]], "identity_text": "Allow file-fdw to read files or program output that uses multi-line headers (Shinya Kato)", "commit_aliases": ["26cb14aea"], "source_commits": ["26cb14aea"], "source_entry_id": "19.0/changes/174", "db_id": "f3aeae7bb3242d31771a456e66e4cb8f", "patch_ids": ["3ca3196d311c8cbda6df506d55e2219f"], "statement_hash": "8d83ef0b2f482eb9ecbf1ffdcd487f18316ca92d9d483dbf4dabd8a9711c20c8", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-273e78d2da55ca39", "migration": false}, {"id": "19.0-d4c1bfe1ef53f180", "cves": [], "html": "<p>Add server variable <code>auto_explain.log_io</code> to add IO reporting to <a href=\"/docs/19/auto-explain.html\" title=\"F.3.\u00a0auto_explain \u2014 log execution plans of slow queries\"><span>auto_explain</span></a> (Tomas Vondra) <a href=\"https://postgr.es/c/61c36a34a\">\u00a7</a></p>", "text": "Add server variable auto_explain.log_io to add IO reporting to auto_explain (Tomas Vondra) \u00a7", "title": "Add server variable auto_explain.log_io to add IO reporting to auto_explain", "commits": ["61c36a34a"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MODULES", "source_hash": "5b7a66994e15136bcd9c1e24155de1987271bd443a76ea03aadb7d13c4f61804", "section_path": ["Additional Modules"], "commit_groups": [["61c36a34a"]], "identity_text": "Add server variable auto_explain.log_io to add IO reporting to auto_explain (Tomas Vondra)", "commit_aliases": ["61c36a34a"], "source_commits": ["61c36a34a"], "source_entry_id": "19.0/changes/175", "db_id": "9b13adac2e7d1b08fdc1e15624463bce", "patch_ids": ["45ed70c12bcc1a7ec0563a04c899b0f2"], "statement_hash": "99e7c0ae99e164554f864d219ea2290b866bc2d95b00489b33531e6b60c7b906", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-d4c1bfe1ef53f180", "migration": false}, {"id": "19.0-b8f543a2da145b55", "cves": [], "html": "<p>Allow <a href=\"/docs/19/auto-explain.html\" title=\"F.3.\u00a0auto_explain \u2014 log execution plans of slow queries\"><span>auto_explain</span></a> to add extension-specific <a href=\"/docs/19/sql-explain.html\" title=\"EXPLAIN\"><code>EXPLAIN</code></a> options via server variable <code>auto_explain.log_extension_options</code> (Robert Haas) <a href=\"https://postgr.es/c/e972dff6c\">\u00a7</a></p>", "text": "Allow auto_explain to add extension-specific EXPLAIN options via server variable auto_explain.log_extension_options (Robert Haas) \u00a7", "title": "Allow auto_explain to add extension-specific EXPLAIN options via server variable auto_explain.log_extension_options", "commits": ["e972dff6c"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MODULES", "source_hash": "a46f9bdffcb91e8068684045c20d81500cedb2b2840fcdb30b054c323fd289c9", "section_path": ["Additional Modules"], "commit_groups": [["e972dff6c"]], "identity_text": "Allow auto_explain to add extension-specific EXPLAIN options via server variable auto_explain.log_extension_options (Robert Haas)", "commit_aliases": ["e972dff6c"], "source_commits": ["e972dff6c"], "source_entry_id": "19.0/changes/176", "db_id": "bd12ac3aea9a8d6d1cdfd0013d085016", "patch_ids": ["858dba353a2947f79be7f84249de7df9"], "statement_hash": "2c64f08a5f6253b60f1ee5fc117e84e13d747b680dc284ceafce932968264453", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-b8f543a2da145b55", "migration": false}, {"id": "19.0-06a0a6beadfab22a", "cves": [], "html": "<p>Change <a href=\"/docs/19/btree-gin.html\" title=\"F.7.\u00a0btree_gin \u2014 GIN operator classes with B-tree behavior\">btree_gin</a> to support all btree-supported cross-type comparisons (Tom Lane) <a href=\"https://postgr.es/c/e2b64fcef\">\u00a7</a> <a href=\"https://postgr.es/c/fc896821c\">\u00a7</a></p>", "text": "Change btree_gin to support all btree-supported cross-type comparisons (Tom Lane) \u00a7 \u00a7", "title": "Change btree_gin to support all btree-supported cross-type comparisons", "commits": ["e2b64fcef", "fc896821c"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MODULES", "source_hash": "edbbbc7feb56b2d1a5299680352e405d62c795222ad63253dac5f142b6a819a4", "section_path": ["Additional Modules"], "commit_groups": [["e2b64fcef"], ["fc896821c"]], "identity_text": "Change btree-gin to support all btree-supported cross-type comparisons (Tom Lane)", "commit_aliases": ["e2b64fcef", "fc896821c"], "source_commits": ["e2b64fcef", "fc896821c"], "source_entry_id": "19.0/changes/177", "db_id": "6330392f29f43702451e3b94f5b40ee6", "patch_ids": ["465447a0b402e5edd236531603aa582e", "7a3130d69f709a301347e069b21a7e35"], "statement_hash": "d6132868a4bcffb9ab5280c1c4a08fb06978895a355b7dea4f1bad6174c4bb69", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-06a0a6beadfab22a", "migration": false}, {"id": "19.0-1036cac1a0aa4c90", "cves": [], "html": "<p>Improve performance of <a href=\"/docs/19/bloom.html\" title=\"F.6.\u00a0bloom \u2014 bloom filter index access method\">bloom</a> indexes by using streaming reads (Xuneng Zhou) <a href=\"https://postgr.es/c/4c910f3bb\">\u00a7</a> <a href=\"https://postgr.es/c/d841ca2d1\">\u00a7</a></p>", "text": "Improve performance of bloom indexes by using streaming reads (Xuneng Zhou) \u00a7 \u00a7", "title": "Improve performance of bloom indexes by using streaming reads", "commits": ["4c910f3bb", "d841ca2d1"], "section": "Additional Modules", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-MODULES", "source_hash": "aaa048beb10dd8b7c1c5a7624c84cf705067a690cea9ae8598847bbbc1208b91", "section_path": ["Additional Modules"], "commit_groups": [["4c910f3bb"], ["d841ca2d1"]], "identity_text": "Improve performance of bloom indexes by using streaming reads (Xuneng Zhou)", "commit_aliases": ["4c910f3bb", "d841ca2d1"], "source_commits": ["4c910f3bb", "d841ca2d1"], "source_entry_id": "19.0/changes/178", "db_id": "c1cae81ea4c701775cad29ff3f55752c", "patch_ids": ["686df171a67aee372faf0cb6692be924", "b7f9224c78446f20d7662ef68b714cce"], "statement_hash": "c18f530a0c78d3ed5bce4f12151346d68f3d1cc0202c7495ed6e256e0418d986", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=19.0#19.0-1036cac1a0aa4c90", "migration": false}, {"id": "19.0-c8e17e44f79160ac", "cves": [], "html": "<p>Improve performance of <a href=\"/docs/19/pgstattuple.html\" title=\"F.35.\u00a0pgstattuple \u2014 obtain tuple-level statistics\">pgstattuple</a> by using streaming reads (Xuneng Zhou) <a href=\"https://postgr.es/c/213f0079b\">\u00a7</a> <a href=\"https://postgr.es/c/ae58189a4\">\u00a7</a></p>", "text": "Improve performance of pgstattuple by using streaming reads (Xuneng Zhou) \u00a7 \u00a7", "title": "Improve performance of pgstattuple by using streaming reads", "commits": ["213f0079b", "ae58189a4"], "section": "Additional Modules", "category": "performance", "source_url": "/docs/release/19.0/#RELEASE-19-MODULES", "source_hash": "cc178c65f3173eb3e64fac7f6710652e29021bc1410e8a539e39ce0204887ee8", "section_path": ["Additional Modules"], "commit_groups": [["213f0079b"], ["ae58189a4"]], "identity_text": "Improve performance of pgstattuple by using streaming reads (Xuneng Zhou)", "commit_aliases": ["213f0079b", "ae58189a4"], "source_commits": ["213f0079b", "ae58189a4"], "source_entry_id": "19.0/changes/179", "db_id": "8a7e7de06c5684b8c541a0615c99b239", "patch_ids": ["960a7173fce3ace43c22feabf9818d26", "f88c740e4a92e5ef0efe0673eff46dbc"], "statement_hash": "6ce3c55548064e89eb5c7d1302ac0d2dc42f31f405d0d8d3277e6d4829f61f8b", "relations": [], "category_label": "Performance", "url": "/docs/compare/?release=19.0#19.0-c8e17e44f79160ac", "migration": false}, {"id": "19.0-4d24c099abc38ad0", "cves": [], "html": "<p>Allow <a href=\"/docs/19/fuzzystrmatch.html\" title=\"F.16.\u00a0fuzzystrmatch \u2014 determine string similarities and distance\">fuzzystrmatch</a>'s <code>dmetaphone()</code> to use single-byte encodings beyond <acronym>ASCII</acronym> (Peter Eisentraut) <a href=\"https://postgr.es/c/e39ece034\">\u00a7</a></p>", "text": "Allow fuzzystrmatch's dmetaphone() to use single-byte encodings beyond ASCII (Peter Eisentraut) \u00a7", "title": "Allow fuzzystrmatch's dmetaphone() to use single-byte encodings beyond ASCII", "commits": ["e39ece034"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MODULES", "source_hash": "6938b43dc65fc6a1bb7210e2e528f0f619e6e5ac4a694502478fac25531d1d07", "section_path": ["Additional Modules"], "commit_groups": [["e39ece034"]], "identity_text": "Allow fuzzystrmatch 's dmetaphone() to use single-byte encodings beyond ASCII (Peter Eisentraut)", "commit_aliases": ["e39ece034"], "source_commits": ["e39ece034"], "source_entry_id": "19.0/changes/180", "db_id": "2f4cdc177b6b4856fb1182f67f4b9591", "patch_ids": ["c0bb5dadb01930e4bf51801126b09e77"], "statement_hash": "90a2b497dfcd9fbcde3399375b31dc47ae8b5ccbdc57e385d35ed61273d0949d", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-4d24c099abc38ad0", "migration": false}, {"id": "19.0-989c7eadd408a591", "cves": [], "html": "<p>Modify <a href=\"/docs/19/oid2name.html\" title=\"oid2name\"><span>oid2name</span></a> <code>--extended</code> to report the relation file path (David Bidoc) <a href=\"https://postgr.es/c/3c5ec35de\">\u00a7</a></p>", "text": "Modify oid2name --extended to report the relation file path (David Bidoc) \u00a7", "title": "Modify oid2name --extended to report the relation file path", "commits": ["3c5ec35de"], "section": "Additional Modules", "category": "feature", "source_url": "/docs/release/19.0/#RELEASE-19-MODULES", "source_hash": "f16432d570e8d20b878f5a2ec611a0940b1517d3c6632205a0d423d0f97e0ef2", "section_path": ["Additional Modules"], "commit_groups": [["3c5ec35de"]], "identity_text": "Modify oid2name --extended to report the relation file path (David Bidoc)", "commit_aliases": ["3c5ec35de"], "source_commits": ["3c5ec35de"], "source_entry_id": "19.0/changes/181", "db_id": "5bd49119a0395f6378c1f44a163d7fec", "patch_ids": ["bd4ef9575357e38c8246f151b82b9c64"], "statement_hash": "e3b3e66f689dd66d8d6abd9f1abbdd0e2a059ba32e8928dd5543692c1c506e0a", "relations": [], "category_label": "Features", "url": "/docs/compare/?release=19.0#19.0-989c7eadd408a591", "migration": false}], "initial_entry_count": 198, "migration_html": "<p>A dump/restore using <a href=\"/docs/19/app-pg-dumpall.html\" title=\"pg_dumpall\"><span><span>pg_dumpall</span></span></a> or use of <a href=\"/docs/19/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/19/upgrading.html\" title=\"18.6.\u00a0Upgrading a PostgreSQL Cluster\">Section\u00a018.6</a> for general information on migrating to new major releases.</p>\n<p>Version 19 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": 161}, {"key": "bugfix", "label": "Bug fixes", "count": 0}, {"key": "security", "label": "Security", "count": 0}, {"key": "performance", "label": "Performance", "count": 20}, {"key": "compatibility", "label": "Compatibility", "count": 17}, {"key": "improvement", "label": "Improvements", "count": 0}], "security_rows": [], "security_covered": false, "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": 16064841, "url": "/files/documentation/pdf/19/postgresql-19-A4.pdf"}, {"label": "US Letter PDF", "bytes": 15974616, "url": "/files/documentation/pdf/19/postgresql-19-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": ""}]}