{"already_in_source_count":0,"candidate_count":210,"cross_major":false,"cve_available":true,"cve_count":0,"cves":[],"duplicate_count":0,"excluded_count":0,"exclusions":[],"from_release":null,"groups":[{"age_days":413,"build":"18.0","changes_count":199,"compatibility_count":11,"content_hash":"18846b73e34c6c5402520e411e973c0a253591050c63dbc366a66ce751e0aeaa","date":"2025-09-25","date_text":"2025-09-25","doc_git":"","doc_loaded_at":"2026-09-25T02:22:44.760693","entries":[{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":["04bec894a04"],"commit_groups":[["04bec894a04"]],"commits":["04bec894a04"],"cves":[],"db_id":"f3c7465886914cc33d3dae8014f0ac38","html":"\u003cp\u003eChange \u003ca href=\"/docs/18/app-initdb.html\" title=\"initdb\"\u003e\u003cspan\u003e\u003cspan\u003einitdb\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e default to enable data checksums (Greg Sabino Mullane) \u003ca href=\"https://postgr.es/c/04bec894a04\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eChecksums can be disabled with the new \u003cspan\u003einitdb\u003c/span\u003e option \u003ccode\u003e--no-data-checksums\u003c/code\u003e. \u003ca href=\"/docs/18/pgupgrade.html\" title=\"pg_upgrade\"\u003e\u003cspan\u003e\u003cspan\u003epg_upgrade\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e requires matching cluster checksum settings, so this new option can be useful to upgrade non-checksum old clusters.\u003c/p\u003e","id":"18.0-a8fa82432892119f","identity_text":"Change app-initdb default to enable data checksums (Greg Sabino Mullane) Checksums can be disabled with the new initdb option --no-data-checksums. pgupgrade requires matching cluster checksum settings, so this new option can be useful to upgrade non-checksum old clusters.","part":"migration","patch_ids":["f78286ddb1f2e6833c76c4a8351542bf"],"related_changes":[{"db_id":"db70c584fb64d9f59231adb14744b4a2","evidence":{"patch_ids":["f78286ddb1f2e6833c76c4a8351542bf"],"same_day":true},"kind":"related","label":"18.0","source_url":"/docs/release/18.0/#RELEASE-18-SERVER-APPS","title":"Change initdb to default to enabling checksums","url":"/docs/compare/?release=18.0#18.0-d9b49042b8f09224","version":"18.0"}],"relations":[{"evidence":{"patch_ids":["f78286ddb1f2e6833c76c4a8351542bf"],"same_day":true},"rule":2,"target":"db70c584fb64d9f59231adb14744b4a2","type":"related"}],"section":"Compatibility","section_path":["Compatibility"],"source_commits":["04bec894a04"],"source_entry_id":"18.0/migration/001","source_hash":"ab496434d25411703b78d251977a161d4f481117f9a61c9a5ed39e5056795861","source_url":"/docs/release/18.0/#RELEASE-18-MIGRATION","statement_hash":"8b50759677598fe7ea5e5a6df6d0083c36bbd43c74224fd00ca0fd9966a22f2f","text":"Change initdb default to enable data checksums (Greg Sabino Mullane) § Checksums can be disabled with the new initdb option --no-data-checksums. pg_upgrade requires matching cluster checksum settings, so this new option can be useful to upgrade non-checksum old clusters.","title":"Change initdb default to enable data checksums","variants":[],"version":"18.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":["d7674c9fa"],"commit_groups":[["d7674c9fa"]],"commits":["d7674c9fa"],"cves":[],"db_id":"2343bc4fd897605d6495c765dfdc2774","html":"\u003cp\u003eChange time zone abbreviation handling (Tom Lane) \u003ca href=\"https://postgr.es/c/d7674c9fa\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe system will now favor the current session's time zone abbreviations before checking the server variable \u003ca href=\"/docs/18/runtime-config-client.html#GUC-TIMEZONE-ABBREVIATIONS\"\u003etimezone_abbreviations\u003c/a\u003e. Previously \u003ccode\u003etimezone_abbreviations\u003c/code\u003e was checked first.\u003c/p\u003e","id":"18.0-d328de9397b5e0d5","identity_text":"Change time zone abbreviation handling (Tom Lane) The system will now favor the current session's time zone abbreviations before checking the server variable guc-timezone-abbreviations . Previously timezone_abbreviations was checked first.","part":"migration","patch_ids":["4fb970b4bd6121eaf0178066f8ea909c"],"related_changes":[],"relations":[],"section":"Compatibility","section_path":["Compatibility"],"source_commits":["d7674c9fa"],"source_entry_id":"18.0/migration/002","source_hash":"ec9a6dbcae9b0cc2ac417b00bc0d62968e91e82fe34d0a8e1e8e63e896b46d5f","source_url":"/docs/release/18.0/#RELEASE-18-MIGRATION","statement_hash":"f8a25067db2d336959a2f40c8130ac1d55dcd167e4db04c3249bec7147a49eb8","text":"Change time zone abbreviation handling (Tom Lane) § The system will now favor the current session's time zone abbreviations before checking the server variable timezone_abbreviations. Previously timezone_abbreviations was checked first.","title":"Change time zone abbreviation handling","variants":[],"version":"18.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":["db6a4a985"],"commit_groups":[["db6a4a985"]],"commits":["db6a4a985"],"cves":[],"db_id":"30aed22a7b379bfc7e845b051d348d35","html":"\u003cp\u003eDeprecate \u003ca href=\"/docs/18/auth-password.html\" title=\"20.5. Password Authentication\"\u003eMD5 password\u003c/a\u003e authentication (Nathan Bossart) \u003ca href=\"https://postgr.es/c/db6a4a985\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eSupport for MD5 passwords will be removed in a future major version release. \u003ca href=\"/docs/18/sql-createrole.html\" title=\"CREATE ROLE\"\u003e\u003cspan\u003eCREATE ROLE\u003c/span\u003e\u003c/a\u003e and \u003ca href=\"/docs/18/sql-alterrole.html\" title=\"ALTER ROLE\"\u003e\u003cspan\u003eALTER ROLE\u003c/span\u003e\u003c/a\u003e now emit deprecation warnings when setting MD5 passwords. These warnings can be disabled by setting the \u003ca href=\"/docs/18/runtime-config-connection.html#GUC-MD5-PASSWORD-WARNINGS\"\u003emd5_password_warnings\u003c/a\u003e parameter to \u003ccode\u003eoff\u003c/code\u003e.\u003c/p\u003e","id":"18.0-5b8f3e9c493f3cfc","identity_text":"Deprecate MD5 password authentication (Nathan Bossart) Support for MD5 passwords will be removed in a future major version release. sql-createrole and sql-alterrole now emit deprecation warnings when setting MD5 passwords. These warnings can be disabled by setting the guc-md5-password-warnings parameter to off.","part":"migration","patch_ids":["8c3ab652b8b1dc2fd0afe67ca881830c"],"related_changes":[],"relations":[],"section":"Compatibility","section_path":["Compatibility"],"source_commits":["db6a4a985"],"source_entry_id":"18.0/migration/003","source_hash":"a3c1406a89e6567a01f463dc017332ee26f86f6513954e4242d41228f630b354","source_url":"/docs/release/18.0/#RELEASE-18-MIGRATION","statement_hash":"680efa648cd65a0e690a37b96731050a958a0690ae89e623a11e01e1a072488e","text":"Deprecate MD5 password authentication (Nathan Bossart) § Support for MD5 passwords will be removed in a future major version release. CREATE ROLE and ALTER ROLE now emit deprecation warnings when setting MD5 passwords. These warnings can be disabled by setting the md5_password_warnings parameter to off.","title":"Deprecate MD5 password authentication","variants":[],"version":"18.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":["62ddf7ee9"],"commit_groups":[["62ddf7ee9"]],"commits":["62ddf7ee9"],"cves":[],"db_id":"c27156e947f09ff22df4dce5613e8f4c","html":"\u003cp\u003eChange \u003ca href=\"/docs/18/sql-vacuum.html\" title=\"VACUUM\"\u003e\u003cspan\u003eVACUUM\u003c/span\u003e\u003c/a\u003e and \u003ca href=\"/docs/18/sql-analyze.html\" title=\"ANALYZE\"\u003e\u003cspan\u003eANALYZE\u003c/span\u003e\u003c/a\u003e to process the inheritance children of a parent (Michael Harris) \u003ca href=\"https://postgr.es/c/62ddf7ee9\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe previous behavior can be performed by using the new \u003ccode\u003eONLY\u003c/code\u003e option.\u003c/p\u003e","id":"18.0-c84ca88e6e5518a9","identity_text":"Change sql-vacuum and sql-analyze to process the inheritance children of a parent (Michael Harris) The previous behavior can be performed by using the new ONLY option.","part":"migration","patch_ids":["29279fd7549098871f985b99df60e141"],"related_changes":[{"db_id":"94f45240a0275d0638838beebe665ece","evidence":{"patch_ids":["29279fd7549098871f985b99df60e141"],"same_day":true},"kind":"related","label":"18.0","source_url":"/docs/release/18.0/#RELEASE-18-UTILITY","title":"Allow VACUUM and ANALYZE to process partitioned tables without processing their children","url":"/docs/compare/?release=18.0#18.0-f2283e0ad8b607f4","version":"18.0"}],"relations":[{"evidence":{"patch_ids":["29279fd7549098871f985b99df60e141"],"same_day":true},"rule":2,"target":"94f45240a0275d0638838beebe665ece","type":"related"}],"section":"Compatibility","section_path":["Compatibility"],"source_commits":["62ddf7ee9"],"source_entry_id":"18.0/migration/004","source_hash":"e38aa345a14711d367987f4fa89c4779eea36ec33d38f095e55fe5cee251a237","source_url":"/docs/release/18.0/#RELEASE-18-MIGRATION","statement_hash":"76658321347e57068ed0f32921beaf67fdfe6744b563a2f78d0f84beb89c3ac3","text":"Change VACUUM and ANALYZE to process the inheritance children of a parent (Michael Harris) § The previous behavior can be performed by using the new ONLY option.","title":"Change VACUUM and ANALYZE to process the inheritance children of a parent","variants":[],"version":"18.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":["770233748","da8a4c166"],"commit_groups":[["770233748"],["da8a4c166"]],"commits":["770233748","da8a4c166"],"cves":[],"db_id":"4f7cd257e4ad009f611f0caf979d438e","html":"\u003cp\u003ePrevent \u003ca href=\"/docs/18/sql-copy.html\" title=\"COPY\"\u003e\u003ccode\u003eCOPY FROM\u003c/code\u003e\u003c/a\u003e from treating \u003ccode\u003e\\.\u003c/code\u003e as an end-of-file marker when reading \u003cacronym\u003eCSV\u003c/acronym\u003e files (Daniel Vérité, Tom Lane) \u003ca href=\"https://postgr.es/c/770233748\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/da8a4c166\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/docs/18/app-psql.html\" title=\"psql\"\u003e\u003cspan\u003e\u003cspan\u003epsql\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e will still treat \u003ccode\u003e\\.\u003c/code\u003e as an end-of-file marker when reading \u003cacronym\u003eCSV\u003c/acronym\u003e files from \u003ccode\u003eSTDIN\u003c/code\u003e. Older \u003cspan\u003epsql\u003c/span\u003e clients connecting to \u003cspan\u003ePostgreSQL\u003c/span\u003e 18 servers might experience \u003ca href=\"/docs/18/app-psql.html#APP-PSQL-META-COMMANDS-COPY\"\u003e\u003ccode\u003e\\copy\u003c/code\u003e\u003c/a\u003e problems. This release also enforces that \u003ccode\u003e\\.\u003c/code\u003e must appear alone on a line.\u003c/p\u003e","id":"18.0-dea78a5140a83ea5","identity_text":"Prevent COPY FROM from treating \\. as an end-of-file marker when reading CSV files (Daniel Vérité, Tom Lane) app-psql will still treat \\. as an end-of-file marker when reading CSV files from STDIN. Older psql clients connecting to PostgreSQL 18 servers might experience \\copy problems. This release also enforces that \\. must appear alone on a line.","part":"migration","patch_ids":["0d4f992d2be4de6ff4cd458ccb95eca4","1ea23822f2f40fda5f44f0d3d8abc20f"],"related_changes":[],"relations":[],"section":"Compatibility","section_path":["Compatibility"],"source_commits":["770233748","da8a4c166"],"source_entry_id":"18.0/migration/005","source_hash":"fea2a46c290c3f9965df10b2e76f7a4d57cffc9ed5493f2366fa39775ad33fe9","source_url":"/docs/release/18.0/#RELEASE-18-MIGRATION","statement_hash":"e79e11d3871e9ef0892573cfab7e0f55552a205043d862b2e9724ee4c69f4016","text":"Prevent COPY FROM from treating \\. as an end-of-file marker when reading CSV files (Daniel Vérité, Tom Lane) § § psql will still treat \\. as an end-of-file marker when reading CSV files from STDIN. Older psql clients connecting to PostgreSQL 18 servers might experience \\copy problems. This release also enforces that \\. must appear alone on a line.","title":"Prevent COPY FROM from treating \\. as an end-of-file marker when reading CSV files","variants":[],"version":"18.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":["e2bab2d79"],"commit_groups":[["e2bab2d79"]],"commits":["e2bab2d79"],"cves":[],"db_id":"8118dd69602467d30fb6a9609bba6b70","html":"\u003cp\u003eDisallow unlogged partitioned tables (Michael Paquier) \u003ca href=\"https://postgr.es/c/e2bab2d79\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePreviously \u003ca href=\"/docs/18/sql-altertable.html\" title=\"ALTER TABLE\"\u003e\u003ccode\u003eALTER TABLE SET [UN]LOGGED\u003c/code\u003e\u003c/a\u003e did nothing, and the creation of an unlogged partitioned table did not cause its children to be unlogged.\u003c/p\u003e","id":"18.0-c367683bb470a5d2","identity_text":"Disallow unlogged partitioned tables (Michael Paquier) Previously ALTER TABLE SET [UN]LOGGED did nothing, and the creation of an unlogged partitioned table did not cause its children to be unlogged.","part":"migration","patch_ids":["04e8ab00f8915683a43dd6f436a5c79b"],"related_changes":[],"relations":[],"section":"Compatibility","section_path":["Compatibility"],"source_commits":["e2bab2d79"],"source_entry_id":"18.0/migration/006","source_hash":"2a426f3624dd193ed36b9a5f8e99a1c2b6a654ba9a342e2deb4f460d5d74d69c","source_url":"/docs/release/18.0/#RELEASE-18-MIGRATION","statement_hash":"3b9bcae38ba730024eb2f2277a64804c55d104dbf649268784801db61ef784c1","text":"Disallow unlogged partitioned tables (Michael Paquier) § Previously ALTER TABLE SET [UN]LOGGED did nothing, and the creation of an unlogged partitioned table did not cause its children to be unlogged.","title":"Disallow unlogged partitioned tables","variants":[],"version":"18.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":["01463e1cc"],"commit_groups":[["01463e1cc"]],"commits":["01463e1cc"],"cves":[],"db_id":"ae8521434650fe5524c9fcaa38acac84","html":"\u003cp\u003eExecute \u003ccode\u003eAFTER\u003c/code\u003e \u003ca href=\"/docs/18/triggers.html\" title=\"Chapter 37. Triggers\"\u003etriggers\u003c/a\u003e as the role that was active when trigger events were queued (Laurenz Albe) \u003ca href=\"https://postgr.es/c/01463e1cc\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePreviously such triggers were run as the role that was active at trigger execution time (e.g., at \u003ca href=\"/docs/18/sql-commit.html\" title=\"COMMIT\"\u003e\u003cspan\u003eCOMMIT\u003c/span\u003e\u003c/a\u003e). This is significant for cases where the role is changed between queue time and transaction commit.\u003c/p\u003e","id":"18.0-0d2c2c2259abf618","identity_text":"Execute AFTER triggers as the role that was active when trigger events were queued (Laurenz Albe) Previously such triggers were run as the role that was active at trigger execution time (e.g., at sql-commit ). This is significant for cases where the role is changed between queue time and transaction commit.","part":"migration","patch_ids":["917ba717810e74a1c7c638690cf0f5eb"],"related_changes":[],"relations":[],"section":"Compatibility","section_path":["Compatibility"],"source_commits":["01463e1cc"],"source_entry_id":"18.0/migration/007","source_hash":"f10785acbe9b26f28a8c98e9a00c1d2a4e8afa8c0b7f7291f990211dfc079f53","source_url":"/docs/release/18.0/#RELEASE-18-MIGRATION","statement_hash":"f0612c07183e11ac71073f5d359d3b0a521ebcc0822d94befe83c23059d03016","text":"Execute AFTER triggers as the role that was active when trigger events were queued (Laurenz Albe) § Previously such triggers were run as the role that was active at trigger execution time (e.g., at COMMIT). This is significant for cases where the role is changed between queue time and transaction commit.","title":"Execute AFTER triggers as the role that was active when trigger events were queued","variants":[],"version":"18.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":["fefa76f70"],"commit_groups":[["fefa76f70"]],"commits":["fefa76f70"],"cves":[],"db_id":"421b9236b8ba45e9981de4acb0936336","html":"\u003cp\u003eRemove non-functional support for rule privileges in \u003ca href=\"/docs/18/sql-grant.html\" title=\"GRANT\"\u003e\u003cspan\u003eGRANT\u003c/span\u003e\u003c/a\u003e/\u003ca href=\"/docs/18/sql-revoke.html\" title=\"REVOKE\"\u003e\u003cspan\u003eREVOKE\u003c/span\u003e\u003c/a\u003e (Fujii Masao) \u003ca href=\"https://postgr.es/c/fefa76f70\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThese have been non-functional since \u003cspan\u003ePostgreSQL\u003c/span\u003e 8.2.\u003c/p\u003e","id":"18.0-607cc591e9d82ae8","identity_text":"Remove non-functional support for rule privileges in sql-grant / sql-revoke (Fujii Masao) These have been non-functional since PostgreSQL 8.2.","part":"migration","patch_ids":["1a39a92752613c9674e39e99f119c2de"],"related_changes":[],"relations":[],"section":"Compatibility","section_path":["Compatibility"],"source_commits":["fefa76f70"],"source_entry_id":"18.0/migration/008","source_hash":"db08cd3d3ddd023cec8d6165fd052ba6e7d655cc958d6c238b6f02af024dc1a1","source_url":"/docs/release/18.0/#RELEASE-18-MIGRATION","statement_hash":"9a9f6ec57f00ae867aca818ec5c55d43899650a49ee6ab2ce0bed4d154bb41b9","text":"Remove non-functional support for rule privileges in GRANT/REVOKE (Fujii Masao) § These have been non-functional since PostgreSQL 8.2.","title":"Remove non-functional support for rule privileges in GRANT/REVOKE","variants":[],"version":"18.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":["f0d112759"],"commit_groups":[["f0d112759"]],"commits":["f0d112759"],"cves":[],"db_id":"af948e47866b03a70707df9bf672d482","html":"\u003cp\u003eRemove column \u003ca href=\"/docs/18/view-pg-backend-memory-contexts.html\" title=\"53.5. pg_backend_memory_contexts\"\u003e\u003ccode\u003epg_backend_memory_contexts\u003c/code\u003e\u003c/a\u003e.\u003ccode\u003eparent\u003c/code\u003e (Melih Mutlu) \u003ca href=\"https://postgr.es/c/f0d112759\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is no longer needed since \u003ccode\u003epg_backend_memory_contexts\u003c/code\u003e.\u003ccode\u003epath\u003c/code\u003e was added.\u003c/p\u003e","id":"18.0-558a645d00b3f47b","identity_text":"Remove column pg_backend_memory_contexts.parent (Melih Mutlu) This is no longer needed since pg_backend_memory_contexts.path was added.","part":"migration","patch_ids":["91a2e8e9299edf53c184627b3cf053e7"],"related_changes":[],"relations":[],"section":"Compatibility","section_path":["Compatibility"],"source_commits":["f0d112759"],"source_entry_id":"18.0/migration/009","source_hash":"3348da5b519f14fb93b5b2c6235af20ce3d744fa55889ab04d496724498b7727","source_url":"/docs/release/18.0/#RELEASE-18-MIGRATION","statement_hash":"a4dc378426b8f016478b991a4d989f716af959a3b360b65d527ec7fd450acb6b","text":"Remove column pg_backend_memory_contexts.parent (Melih Mutlu) § This is no longer needed since pg_backend_memory_contexts.path was added.","title":"Remove column pg_backend_memory_contexts.parent","variants":[],"version":"18.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":["32d3ed816","706cbed35","d9e03864b"],"commit_groups":[["32d3ed816"],["706cbed35"],["d9e03864b"]],"commits":["32d3ed816","706cbed35","d9e03864b"],"cves":[],"db_id":"b8c57d935d8b183f9ee20e7477f90abd","html":"\u003cp\u003eChange \u003ccode\u003epg_backend_memory_contexts\u003c/code\u003e.\u003ccode\u003elevel\u003c/code\u003e and \u003ca href=\"/docs/18/functions-admin.html#FUNCTIONS-ADMIN-SIGNAL-TABLE\" title=\"Table 9.96. Server Signaling Functions\"\u003e\u003ccode\u003epg_log_backend_memory_contexts()\u003c/code\u003e\u003c/a\u003e to be one-based (Melih Mutlu, Atsushi Torikoshi, David Rowley, Fujii Masao) \u003ca href=\"https://postgr.es/c/32d3ed816\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/d9e03864b\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/706cbed35\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThese were previously zero-based.\u003c/p\u003e","id":"18.0-3bddcb1c02f74659","identity_text":"Change pg_backend_memory_contexts.level and pg_log_backend_memory_contexts() to be one-based (Melih Mutlu, Atsushi Torikoshi, David Rowley, Fujii Masao) These were previously zero-based.","part":"migration","patch_ids":["3d61500ab7649ba207c5b4742ce83946","845864cc388c5f840e08c3fdf9f3032a","eaa8db2e49e44f9880c123bf159cab42"],"related_changes":[{"db_id":"7ed5d279df474d7ce518a2cd605d091d","evidence":{"patch_ids":["eaa8db2e49e44f9880c123bf159cab42"],"same_day":true},"kind":"related","label":"18.0","source_url":"/docs/release/18.0/#RELEASE-18-MONITORING","title":"Add column pg_backend_memory_contexts.path to show memory context parents","url":"/docs/compare/?release=18.0#18.0-f9c2e124d8a94a20","version":"18.0"}],"relations":[{"evidence":{"patch_ids":["eaa8db2e49e44f9880c123bf159cab42"],"same_day":true},"rule":2,"target":"7ed5d279df474d7ce518a2cd605d091d","type":"related"}],"section":"Compatibility","section_path":["Compatibility"],"source_commits":["32d3ed816","706cbed35","d9e03864b"],"source_entry_id":"18.0/migration/010","source_hash":"50bbd1729e746a694a3df7d491e7ab79d0b57696ebbb5127fdc124520b03ee7c","source_url":"/docs/release/18.0/#RELEASE-18-MIGRATION","statement_hash":"c56bfdda9e9b110545ab282f1be71da486fd1e7af030b2a5c125fe4d37560c98","text":"Change pg_backend_memory_contexts.level and pg_log_backend_memory_contexts() to be one-based (Melih Mutlu, Atsushi Torikoshi, David Rowley, Fujii Masao) § § § These were previously zero-based.","title":"Change pg_backend_memory_contexts.level and pg_log_backend_memory_contexts() to be one-based","variants":[],"version":"18.0"},{"also_in":[],"category":"compatibility","category_label":"Compatibility","commit_aliases":["fb1a18810f0"],"commit_groups":[["fb1a18810f0"]],"commits":["fb1a18810f0"],"cves":[],"db_id":"14f7ec96f489178a5ba54f0173a2002a","html":"\u003cp\u003eChange \u003ca href=\"/docs/18/textsearch.html\" title=\"Chapter 12. Full Text Search\"\u003efull text search\u003c/a\u003e to use the default collation provider of the cluster to read configuration files and dictionaries, rather than always using libc (Peter Eisentraut) \u003ca href=\"https://postgr.es/c/fb1a18810f0\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eClusters that default to non-libc collation providers (e.g., ICU, builtin) that behave differently than libc for characters processed by LC_CTYPE could observe changes in behavior of some full-text search functions, as well as the \u003ca href=\"/docs/18/pgtrgm.html\" title=\"F.35. pg_trgm — support for similarity of text using trigram matching\"\u003epg_trgm\u003c/a\u003e extension. When upgrading such clusters using \u003ca href=\"/docs/18/pgupgrade.html\" title=\"pg_upgrade\"\u003e\u003cspan\u003e\u003cspan\u003epg_upgrade\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e, it is recommended to reindex all indexes related to full-text search and \u003cspan\u003epg_trgm\u003c/span\u003e after the upgrade.\u003c/p\u003e","id":"18.0-63b962f0125472b6","identity_text":"Change full text search to use the default collation provider of the cluster to read configuration files and dictionaries, rather than always using libc (Peter Eisentraut) Clusters that default to non-libc collation providers (e.g., ICU, builtin) that behave differently than libc for characters processed by LC_CTYPE could observe changes in behavior of some full-text search functions, as well as the pgtrgm extension. When upgrading such clusters using pgupgrade , it is recommended to reindex all indexes related to full-text search and pg_trgm after the upgrade.","part":"migration","patch_ids":["d34589a0ca33552be8913ecb392dc365"],"related_changes":[],"relations":[],"section":"Compatibility","section_path":["Compatibility"],"source_commits":["fb1a18810f0"],"source_entry_id":"18.0/migration/011","source_hash":"e3ce56b4fc2a72cd171306a24ddd0b8daecb530f1409e98a57781871e32f9519","source_url":"/docs/release/18.0/#RELEASE-18-MIGRATION","statement_hash":"0d016706c1da5d040bed5653360eaa27ed050c9172ff53f737e1221153008011","text":"Change full text search to use the default collation provider of the cluster to read configuration files and dictionaries, rather than always using libc (Peter Eisentraut) § Clusters that default to non-libc collation providers (e.g., ICU, builtin) that behave differently than libc for characters processed by LC_CTYPE could observe changes in behavior of some full-text search functions, as well as the pg_trgm extension. When upgrading such clusters using pg_upgrade, it is recommended to reindex all indexes related to full-text search and pg_trgm after the upgrade.","title":"Change full text search to use the default collation provider of the cluster to read configuration files and dictionaries, rather than always using libc","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["fc069a3a6"],"commit_groups":[["fc069a3a6"]],"commits":["fc069a3a6"],"cves":[],"db_id":"e93aac468afc7b983da5961bc89a6570","html":"\u003cp\u003eAutomatically remove some unnecessary table self-joins (Andrey Lepikhov, Alexander Kuzmenkov, Alexander Korotkov, Alena Rybakina) \u003ca href=\"https://postgr.es/c/fc069a3a6\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis optimization can be disabled using server variable \u003ca href=\"/docs/18/runtime-config-query.html#GUC-ENABLE-SELF-JOIN-ELIMINATION\"\u003eenable_self_join_elimination\u003c/a\u003e.\u003c/p\u003e","id":"18.0-680d6a94e6af24a0","identity_text":"Automatically remove some unnecessary table self-joins (Andrey Lepikhov, Alexander Kuzmenkov, Alexander Korotkov, Alena Rybakina) This optimization can be disabled using server variable guc-enable-self-join-elimination .","part":"changes","patch_ids":["f4668f24b918872b344ea179b57163cf"],"related_changes":[],"relations":[],"section":"Server / Optimizer","section_path":["Server","Optimizer"],"source_commits":["fc069a3a6"],"source_entry_id":"18.0/changes/001","source_hash":"40c3196e66530b1ad6c86357db78c6683c075a289ecc4fdc11ccdd15d42dafad","source_url":"/docs/release/18.0/#RELEASE-18-OPTIMIZER","statement_hash":"235c5aa78ae11057e82ffcaba18192f08d816b80c7a4abeb2ccab576de5173f7","text":"Automatically remove some unnecessary table self-joins (Andrey Lepikhov, Alexander Kuzmenkov, Alexander Korotkov, Alena Rybakina) § This optimization can be disabled using server variable enable_self_join_elimination.","title":"Automatically remove some unnecessary table self-joins","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["c0962a113"],"commit_groups":[["c0962a113"]],"commits":["c0962a113"],"cves":[],"db_id":"764cb613ec29b5df2b6d0d9987768083","html":"\u003cp\u003eConvert some \u003ca href=\"/docs/18/functions-comparisons.html#FUNCTIONS-COMPARISONS-IN-SCALAR\" title=\"9.25.1. IN\"\u003e\u003ccode\u003eIN (VALUES ...)\u003c/code\u003e\u003c/a\u003e to \u003ccode\u003ex = ANY ...\u003c/code\u003e for better optimizer statistics (Alena Rybakina, Andrei Lepikhov) \u003ca href=\"https://postgr.es/c/c0962a113\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-d841fa8566ba0e41","identity_text":"Convert some IN (VALUES ...) to x = ANY ... for better optimizer statistics (Alena Rybakina, Andrei Lepikhov)","part":"changes","patch_ids":["f3ef498af7484884fe0fe8d3179d0691"],"related_changes":[],"relations":[],"section":"Server / Optimizer","section_path":["Server","Optimizer"],"source_commits":["c0962a113"],"source_entry_id":"18.0/changes/002","source_hash":"4ba957892aa6172c1ba4d6e4d5242417072a25fa5fb19f26aa2cb93b5cdcea82","source_url":"/docs/release/18.0/#RELEASE-18-OPTIMIZER","statement_hash":"1994faf6d5d15f3e4a7dbff5aa1cd8f7f3f12341dfdeacdf6a2f1f84be69c14b","text":"Convert some IN (VALUES ...) to x = ANY ... for better optimizer statistics (Alena Rybakina, Andrei Lepikhov) §","title":"Convert some IN (VALUES ...) to x = ANY ... for better optimizer statistics","variants":[],"version":"18.0"},{"also_in":[],"category":"performance","category_label":"Performance","commit_aliases":["ae4569161"],"commit_groups":[["ae4569161"]],"commits":["ae4569161"],"cves":[],"db_id":"2e05a47011ecefd0b4eb07547cc72835","html":"\u003cp\u003eAllow transforming \u003ca href=\"/docs/18/functions-logical.html\" title=\"9.1. Logical Operators\"\u003e\u003ccode\u003eOR\u003c/code\u003e\u003c/a\u003e-clauses to arrays for faster index processing (Alexander Korotkov, Andrey Lepikhov) \u003ca href=\"https://postgr.es/c/ae4569161\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-c98c0b36c2f7ee04","identity_text":"Allow transforming OR-clauses to arrays for faster index processing (Alexander Korotkov, Andrey Lepikhov)","part":"changes","patch_ids":["fb982918d31ae726b84a777e332b6884"],"related_changes":[],"relations":[],"section":"Server / Optimizer","section_path":["Server","Optimizer"],"source_commits":["ae4569161"],"source_entry_id":"18.0/changes/003","source_hash":"5fd9cfd78e09d29f7989ebf65e641d8464ca20ab208b3010f1927e2a5a38d21e","source_url":"/docs/release/18.0/#RELEASE-18-OPTIMIZER","statement_hash":"02c7be9bbfb909c1719246ac2948e31ec265c3b148e5d9b6ae59b607ffc7865e","text":"Allow transforming OR-clauses to arrays for faster index processing (Alexander Korotkov, Andrey Lepikhov) §","title":"Allow transforming OR-clauses to arrays for faster index processing","variants":[],"version":"18.0"},{"also_in":[],"category":"performance","category_label":"Performance","commit_aliases":["276279295","52c707483","8d96f57d5","908a96861"],"commit_groups":[["276279295"],["52c707483"],["8d96f57d5"],["908a96861"]],"commits":["276279295","52c707483","8d96f57d5","908a96861"],"cves":[],"db_id":"27889e11b1017fcd071cbebfd982e004","html":"\u003cp\u003eSpeed up the processing of \u003ca href=\"/docs/18/sql-select.html#SQL-INTERSECT\" title=\"INTERSECT Clause\"\u003e\u003ccode\u003eINTERSECT\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"/docs/18/sql-select.html#SQL-EXCEPT\" title=\"EXCEPT Clause\"\u003e\u003ccode\u003eEXCEPT\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"/docs/18/tutorial-window.html\" title=\"3.5. Window Functions\"\u003ewindow aggregates\u003c/a\u003e, and \u003ca href=\"/docs/18/sql-createview.html\" title=\"CREATE VIEW\"\u003eview column aliases\u003c/a\u003e (Tom Lane, David Rowley) \u003ca href=\"https://postgr.es/c/52c707483\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/276279295\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/8d96f57d5\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/908a96861\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-3e2b4de2db16b12f","identity_text":"Speed up the processing of INTERSECT, EXCEPT, window aggregates, and view column aliases (Tom Lane, David Rowley)","part":"changes","patch_ids":["88fc8de0d114dd8d37c995d33aa2e424","c34e95d351102295e83eda2c0898ef4f","d6f6d3fc510fd75b0cd2a6ccb16caf21","e02121b5ec912ea613d75476b5d8da31"],"related_changes":[],"relations":[],"section":"Server / Optimizer","section_path":["Server","Optimizer"],"source_commits":["276279295","52c707483","8d96f57d5","908a96861"],"source_entry_id":"18.0/changes/004","source_hash":"91354d1ac2e34f2ac56c584852bd500487ec143feea22c06d2d473ea4526c886","source_url":"/docs/release/18.0/#RELEASE-18-OPTIMIZER","statement_hash":"67a7f9ceb4d2956015c1be13e9166cb6044290d7faf0fb602f564494e744c06e","text":"Speed up the processing of INTERSECT, EXCEPT, window aggregates, and view column aliases (Tom Lane, David Rowley) § § § §","title":"Speed up the processing of INTERSECT, EXCEPT, window aggregates, and view column aliases","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["a8ccf4e93"],"commit_groups":[["a8ccf4e93"]],"commits":["a8ccf4e93"],"cves":[],"db_id":"e1633e7353cb2e283e589f245c02709b","html":"\u003cp\u003eAllow the keys of \u003ca href=\"/docs/18/sql-select.html#SQL-DISTINCT\" title=\"DISTINCT Clause\"\u003e\u003ccode\u003eSELECT DISTINCT\u003c/code\u003e\u003c/a\u003e to be internally reordered to avoid sorting (Richard Guo) \u003ca href=\"https://postgr.es/c/a8ccf4e93\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis optimization can be disabled using \u003ca href=\"/docs/18/runtime-config-query.html#GUC-ENABLE-DISTINCT-REORDERING\"\u003eenable_distinct_reordering\u003c/a\u003e.\u003c/p\u003e","id":"18.0-e1173d201acd35c6","identity_text":"Allow the keys of SELECT DISTINCT to be internally reordered to avoid sorting (Richard Guo) This optimization can be disabled using guc-enable-distinct-reordering .","part":"changes","patch_ids":["2a4dc17b68562e6259b7bb1052fff9ad"],"related_changes":[],"relations":[],"section":"Server / Optimizer","section_path":["Server","Optimizer"],"source_commits":["a8ccf4e93"],"source_entry_id":"18.0/changes/005","source_hash":"0b3d9b69f68103fec0e196e120de31d7d5ccbd1c26beea05060ff6a886ab9130","source_url":"/docs/release/18.0/#RELEASE-18-OPTIMIZER","statement_hash":"8e10ed699456a43e5c53f99fc9ddb0ec2951686ee8551c8e706fbd1d1b10766c","text":"Allow the keys of SELECT DISTINCT to be internally reordered to avoid sorting (Richard Guo) § This optimization can be disabled using enable_distinct_reordering.","title":"Allow the keys of SELECT DISTINCT to be internally reordered to avoid sorting","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["bd10ec529"],"commit_groups":[["bd10ec529"]],"commits":["bd10ec529"],"cves":[],"db_id":"69820747e9a30607a8a95df47dbabdd6","html":"\u003cp\u003eIgnore \u003ca href=\"/docs/18/sql-select.html#SQL-GROUPBY\" title=\"GROUP BY Clause\"\u003e\u003ccode\u003eGROUP BY\u003c/code\u003e\u003c/a\u003e columns that are functionally dependent on other columns (Zhang Mingli, Jian He, David Rowley) \u003ca href=\"https://postgr.es/c/bd10ec529\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eIf a \u003ccode\u003eGROUP BY\u003c/code\u003e clause includes all columns of a unique index, as well as other columns of the same table, those other columns are redundant and can be dropped from the grouping. This was already true for non-deferred primary keys.\u003c/p\u003e","id":"18.0-723dd69ea02477f1","identity_text":"Ignore GROUP BY columns that are functionally dependent on other columns (Zhang Mingli, Jian He, David Rowley) If a GROUP BY clause includes all columns of a unique index, as well as other columns of the same table, those other columns are redundant and can be dropped from the grouping. This was already true for non-deferred primary keys.","part":"changes","patch_ids":["34cad2fc9ab6206a92e572686514a8b6"],"related_changes":[],"relations":[],"section":"Server / Optimizer","section_path":["Server","Optimizer"],"source_commits":["bd10ec529"],"source_entry_id":"18.0/changes/006","source_hash":"590fd20dfbdf85d87e1c14e1c4ca54d910d8ce015f220e7798d40fa268c94536","source_url":"/docs/release/18.0/#RELEASE-18-OPTIMIZER","statement_hash":"f79bb17c14f5da30c295cc7cf55f487a682d1912a3cd315fb8c06f09d6f9fd62","text":"Ignore GROUP BY columns that are functionally dependent on other columns (Zhang Mingli, Jian He, David Rowley) § If a GROUP BY clause includes all columns of a unique index, as well as other columns of the same table, those other columns are redundant and can be dropped from the grouping. This was already true for non-deferred primary keys.","title":"Ignore GROUP BY columns that are functionally dependent on other columns","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["247dea89f","67a54b9e8","cc5d98525","f5050f795"],"commit_groups":[["247dea89f"],["67a54b9e8"],["cc5d98525"],["f5050f795"]],"commits":["247dea89f","67a54b9e8","cc5d98525","f5050f795"],"cves":[],"db_id":"e536ba32048335bb638a016ded27116b","html":"\u003cp\u003eAllow some \u003ca href=\"/docs/18/sql-select.html#SQL-HAVING\" title=\"HAVING Clause\"\u003e\u003ccode\u003eHAVING\u003c/code\u003e\u003c/a\u003e clauses on \u003ca href=\"/docs/18/queries-table-expressions.html#QUERIES-GROUPING-SETS\" title=\"7.2.4. GROUPING SETS, CUBE, and ROLLUP\"\u003e\u003ccode\u003eGROUPING SETS\u003c/code\u003e\u003c/a\u003e to be pushed to \u003ca href=\"/docs/18/sql-select.html#SQL-WHERE\" title=\"WHERE Clause\"\u003e\u003ccode\u003eWHERE\u003c/code\u003e\u003c/a\u003e clauses (Richard Guo) \u003ca href=\"https://postgr.es/c/67a54b9e8\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/247dea89f\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/f5050f795\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/cc5d98525\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis allows earlier row filtering. This release also fixes some \u003ccode\u003eGROUPING SETS\u003c/code\u003e queries that used to return incorrect results.\u003c/p\u003e","id":"18.0-28dd1f0f20c4cc4b","identity_text":"Allow some HAVING clauses on GROUPING SETS to be pushed to WHERE clauses (Richard Guo) This allows earlier row filtering. This release also fixes some GROUPING SETS queries that used to return incorrect results.","part":"changes","patch_ids":["1ae07ed70f6403998c8d004a95303270","302fc509a25f9b4b070cfc2ed497cc05","5ce25769fa8297252747bcadd5fb8096","bb70968006a3e0fdebcd1dd48f3e503a"],"related_changes":[],"relations":[],"section":"Server / Optimizer","section_path":["Server","Optimizer"],"source_commits":["247dea89f","67a54b9e8","cc5d98525","f5050f795"],"source_entry_id":"18.0/changes/007","source_hash":"7d93dee8cbb6c5b43abf85da682b3cd602844df0aad42cdf3bd1b210551f26fb","source_url":"/docs/release/18.0/#RELEASE-18-OPTIMIZER","statement_hash":"5de0004596ff255cc8fd70e95011362605c186180864bfadb9674a57e084c4d8","text":"Allow some HAVING clauses on GROUPING SETS to be pushed to WHERE clauses (Richard Guo) § § § § This allows earlier row filtering. This release also fixes some GROUPING SETS queries that used to return incorrect results.","title":"Allow some HAVING clauses on GROUPING SETS to be pushed to WHERE clauses","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["036bdcec9","97173536e"],"commit_groups":[["036bdcec9"],["97173536e"]],"commits":["036bdcec9","97173536e"],"cves":[],"db_id":"d82aac51b035bfe8e15d4159c668f73a","html":"\u003cp\u003eImprove row estimates for \u003ca href=\"/docs/18/functions-srf.html#FUNCTIONS-SRF-SERIES\" title=\"Table 9.69. Series Generating Functions\"\u003e\u003ccode\u003egenerate_series()\u003c/code\u003e\u003c/a\u003e using \u003ca href=\"/docs/18/datatype-numeric.html\" title=\"8.1. Numeric Types\"\u003e\u003ccode\u003enumeric\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"/docs/18/datatype-datetime.html\" title=\"8.5. Date/Time Types\"\u003e\u003ccode\u003etimestamp\u003c/code\u003e\u003c/a\u003e values (David Rowley, Song Jinzhou) \u003ca href=\"https://postgr.es/c/036bdcec9\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/97173536e\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-75da163cbd9e48a6","identity_text":"Improve row estimates for generate_series() using numeric and timestamp values (David Rowley, Song Jinzhou)","part":"changes","patch_ids":["1dd699091397089a53c5d457b050033e","804e83795dfcb3c7cca716573e30de6a"],"related_changes":[],"relations":[],"section":"Server / Optimizer","section_path":["Server","Optimizer"],"source_commits":["036bdcec9","97173536e"],"source_entry_id":"18.0/changes/008","source_hash":"bfa62ab567808d130606b57322b3564d5ab00860079455bf2fba489acbfce75f","source_url":"/docs/release/18.0/#RELEASE-18-OPTIMIZER","statement_hash":"802febfa899f0c3d0039d8e72f923517c82398682ce553e3c5c63f2374a042d7","text":"Improve row estimates for generate_series() using numeric and timestamp values (David Rowley, Song Jinzhou) § §","title":"Improve row estimates for generate_series() using numeric and timestamp values","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["aa86129e1"],"commit_groups":[["aa86129e1"]],"commits":["aa86129e1"],"cves":[],"db_id":"f76a8468845b91ddcffeaa33fa3400a0","html":"\u003cp\u003eAllow the optimizer to use \u003ccode\u003eRight Semi Join\u003c/code\u003e plans (Richard Guo) \u003ca href=\"https://postgr.es/c/aa86129e1\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eSemi-joins are used when needing to find if there is at least one match.\u003c/p\u003e","id":"18.0-70a56ade34590ddd","identity_text":"Allow the optimizer to use Right Semi Join plans (Richard Guo) Semi-joins are used when needing to find if there is at least one match.","part":"changes","patch_ids":["79e6e1842e88c7f535ade4eaba7be513"],"related_changes":[],"relations":[],"section":"Server / Optimizer","section_path":["Server","Optimizer"],"source_commits":["aa86129e1"],"source_entry_id":"18.0/changes/009","source_hash":"619b5f1bfc705891d795ac9ab763f6362d300120b9a2d649250a5fb0fe617a45","source_url":"/docs/release/18.0/#RELEASE-18-OPTIMIZER","statement_hash":"117c31abccc7e061fab7475bec0bdf75e420f53925d5e95de87e71dad3cea951","text":"Allow the optimizer to use Right Semi Join plans (Richard Guo) § Semi-joins are used when needing to find if there is at least one match.","title":"Allow the optimizer to use Right Semi Join plans","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["828e94c9d"],"commit_groups":[["828e94c9d"]],"commits":["828e94c9d"],"cves":[],"db_id":"7e8d7bcff75eca9f6d3794b3ed0388fb","html":"\u003cp\u003eAllow merge joins to use \u003ca href=\"/docs/18/runtime-config-query.html#GUC-ENABLE-INCREMENTAL-SORT\"\u003eincremental sorts\u003c/a\u003e (Richard Guo) \u003ca href=\"https://postgr.es/c/828e94c9d\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-0bf93b27e1b1c8e2","identity_text":"Allow merge joins to use incremental sorts (Richard Guo)","part":"changes","patch_ids":["22cb8f9f6594048e5c90b7c0a948ea39"],"related_changes":[],"relations":[],"section":"Server / Optimizer","section_path":["Server","Optimizer"],"source_commits":["828e94c9d"],"source_entry_id":"18.0/changes/010","source_hash":"232faeb186a197cb2d471ce89d7969bca2593ea44e545f90f86f5ec9974800b1","source_url":"/docs/release/18.0/#RELEASE-18-OPTIMIZER","statement_hash":"c730545e91cae06688ba34e2ac9097a5800e1f311eaa283af2f272f7a1ac2767","text":"Allow merge joins to use incremental sorts (Richard Guo) §","title":"Allow merge joins to use incremental sorts","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["88f55bc97","d69d45a5a"],"commit_groups":[["88f55bc97"],["d69d45a5a"]],"commits":["88f55bc97","d69d45a5a"],"cves":[],"db_id":"6365c622e7f4156b307f731e72d9a3de","html":"\u003cp\u003eImprove the efficiency of planning queries accessing many partitions (Ashutosh Bapat, Yuya Watari, David Rowley) \u003ca href=\"https://postgr.es/c/88f55bc97\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/d69d45a5a\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-200b52f9d63401ad","identity_text":"Improve the efficiency of planning queries accessing many partitions (Ashutosh Bapat, Yuya Watari, David Rowley)","part":"changes","patch_ids":["15b3816633681459d9dd93e64a48ce0d","ba8aa7045b27e8a9467ad9df65f2a614"],"related_changes":[],"relations":[],"section":"Server / Optimizer","section_path":["Server","Optimizer"],"source_commits":["88f55bc97","d69d45a5a"],"source_entry_id":"18.0/changes/011","source_hash":"7cec6b7a3c4b0b96689bd0d68404844c350a00677ea88e38b124b1582f228d77","source_url":"/docs/release/18.0/#RELEASE-18-OPTIMIZER","statement_hash":"abf3aa0c2277a1dc8d9ddb61b3ffe1d2c987f7e7d4295a9d96f9ad75fa3f8e2a","text":"Improve the efficiency of planning queries accessing many partitions (Ashutosh Bapat, Yuya Watari, David Rowley) § §","title":"Improve the efficiency of planning queries accessing many partitions","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["513f4472a","9b282a935"],"commit_groups":[["513f4472a"],["9b282a935"]],"commits":["513f4472a","9b282a935"],"cves":[],"db_id":"e1323b3c594bfa821577fa9462f03cdb","html":"\u003cp\u003eAllow \u003ca href=\"/docs/18/runtime-config-query.html#GUC-ENABLE-PARTITIONWISE-JOIN\"\u003epartitionwise joins\u003c/a\u003e in more cases, and reduce its memory usage (Richard Guo, Tom Lane, Ashutosh Bapat) \u003ca href=\"https://postgr.es/c/9b282a935\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/513f4472a\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-cd058ce20aafebed","identity_text":"Allow partitionwise joins in more cases, and reduce its memory usage (Richard Guo, Tom Lane, Ashutosh Bapat)","part":"changes","patch_ids":["2ff70c110f54ba540a2cece6e3a512cd","dd416b1d8a4d68e28e16f90c7055e0bb"],"related_changes":[],"relations":[],"section":"Server / Optimizer","section_path":["Server","Optimizer"],"source_commits":["513f4472a","9b282a935"],"source_entry_id":"18.0/changes/012","source_hash":"cccb81e8d167297ee2b086955ed9914693ecfdb1803b07df4ff007a993b1d1bd","source_url":"/docs/release/18.0/#RELEASE-18-OPTIMIZER","statement_hash":"40327e199cf2577490955fbcc74c05fe2901108bec3acfe4621734a986af7685","text":"Allow partitionwise joins in more cases, and reduce its memory usage (Richard Guo, Tom Lane, Ashutosh Bapat) § §","title":"Allow partitionwise joins in more cases, and reduce its memory usage","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["fae535da0"],"commit_groups":[["fae535da0"]],"commits":["fae535da0"],"cves":[],"db_id":"c65e9805a7d1ddaa6d1373559e4cc29f","html":"\u003cp\u003eImprove cost estimates of partition queries (Nikita Malakhov, Andrei Lepikhov) \u003ca href=\"https://postgr.es/c/fae535da0\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-0a96c3f22c743902","identity_text":"Improve cost estimates of partition queries (Nikita Malakhov, Andrei Lepikhov)","part":"changes","patch_ids":["61b7fea36f21c950e67f8bac538e8fce"],"related_changes":[],"relations":[],"section":"Server / Optimizer","section_path":["Server","Optimizer"],"source_commits":["fae535da0"],"source_entry_id":"18.0/changes/013","source_hash":"ad72fe467357e9b21f201ea22bac15faa0c66b16f28d43cb9b3f490b554ae9db","source_url":"/docs/release/18.0/#RELEASE-18-OPTIMIZER","statement_hash":"a36db3cf18d61186e69ff7181df62ed65dd845c1892191555ce2f6c4eecb52bd","text":"Improve cost estimates of partition queries (Nikita Malakhov, Andrei Lepikhov) §","title":"Improve cost estimates of partition queries","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["09b07c295","0dca5d68d"],"commit_groups":[["09b07c295"],["0dca5d68d"]],"commits":["09b07c295","0dca5d68d"],"cves":[],"db_id":"de187fd5833da9236d39e17a824451c0","html":"\u003cp\u003eImprove \u003ca href=\"/docs/18/xfunc-sql.html\" title=\"36.5. Query Language (SQL) Functions\"\u003e\u003cacronym\u003eSQL\u003c/acronym\u003e-language function\u003c/a\u003e plan caching (Alexander Pyhalov, Tom Lane) \u003ca href=\"https://postgr.es/c/0dca5d68d\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/09b07c295\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-0ed62a6dcc6eb60c","identity_text":"Improve SQL-language function plan caching (Alexander Pyhalov, Tom Lane)","part":"changes","patch_ids":["254214644dc444095fdc1eed63435eea","aca8b43ca22cd7e20074fc7a0a7722ba"],"related_changes":[],"relations":[],"section":"Server / Optimizer","section_path":["Server","Optimizer"],"source_commits":["09b07c295","0dca5d68d"],"source_entry_id":"18.0/changes/014","source_hash":"624d5ebd4fbd3484e763f4ffd477ed7308b2ba7c3b507bfe163d59e440d1c9f2","source_url":"/docs/release/18.0/#RELEASE-18-OPTIMIZER","statement_hash":"146626d1f5aff4758ae17dc01f8d5f905420813c8aeb98087d9ca08c5471eb23","text":"Improve SQL-language function plan caching (Alexander Pyhalov, Tom Lane) § §","title":"Improve SQL-language function plan caching","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["e22253467"],"commit_groups":[["e22253467"]],"commits":["e22253467"],"cves":[],"db_id":"6af674fe85c6718d1c2ae803cc5fa2d4","html":"\u003cp\u003eImprove handling of disabled optimizer features (Robert Haas) \u003ca href=\"https://postgr.es/c/e22253467\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-81f4be5c092dad16","identity_text":"Improve handling of disabled optimizer features (Robert Haas)","part":"changes","patch_ids":["78269645a1e3bdd21fcde369b7fb1c82"],"related_changes":[],"relations":[],"section":"Server / Optimizer","section_path":["Server","Optimizer"],"source_commits":["e22253467"],"source_entry_id":"18.0/changes/015","source_hash":"3ac7c9a012dfeb824499ec299452a4443f811573d8cdc48a32a87591feb62e84","source_url":"/docs/release/18.0/#RELEASE-18-OPTIMIZER","statement_hash":"0dcbf8861cd7ba230ddcdaf5746f5f46a4f85aa3e242a34f907c8eadbc61f43c","text":"Improve handling of disabled optimizer features (Robert Haas) §","title":"Improve handling of disabled optimizer features","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["8a510275d","92fe23d93"],"commit_groups":[["8a510275d"],["92fe23d93"]],"commits":["8a510275d","92fe23d93"],"cves":[],"db_id":"d6862625b987b44876b5f8813415e301","html":"\u003cp\u003eAllow skip scans of \u003ca href=\"/docs/18/xfunc-sql.html\" title=\"36.5. Query Language (SQL) Functions\"\u003ebtree\u003c/a\u003e indexes (Peter Geoghegan) \u003ca href=\"https://postgr.es/c/92fe23d93\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/8a510275d\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis allows multi-column btree indexes to be used in more cases such as when there are no restrictions on the first or early indexed columns (or there are non-equality ones), and there are useful restrictions on later indexed columns.\u003c/p\u003e","id":"18.0-5c8b8535c34dd690","identity_text":"Allow skip scans of btree indexes (Peter Geoghegan) This allows multi-column btree indexes to be used in more cases such as when there are no restrictions on the first or early indexed columns (or there are non-equality ones), and there are useful restrictions on later indexed columns.","part":"changes","patch_ids":["635b38c19244d008c0a276c87c34aabf","e61ae831ab07aa91f44cf34554c51986"],"related_changes":[],"relations":[],"section":"Server / Indexes","section_path":["Server","Indexes"],"source_commits":["8a510275d","92fe23d93"],"source_entry_id":"18.0/changes/016","source_hash":"6fc7b9601b88e3906c876c63e64c4ed31901ffef59984e3a9f3c5467cf0e520e","source_url":"/docs/release/18.0/#RELEASE-18-INDEXES","statement_hash":"5f70bac2450552918acb0585c69d065150051c94ca3fd7c0e78accb784965d18","text":"Allow skip scans of btree indexes (Peter Geoghegan) § § This allows multi-column btree indexes to be used in more cases such as when there are no restrictions on the first or early indexed columns (or there are non-equality ones), and there are useful restrictions on later indexed columns.","title":"Allow skip scans of btree indexes","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["9d6db8bec","f278e1fe3"],"commit_groups":[["9d6db8bec"],["f278e1fe3"]],"commits":["9d6db8bec","f278e1fe3"],"cves":[],"db_id":"494315b065e8cf257c51cc573e8cd5ba","html":"\u003cp\u003eAllow non-btree unique indexes to be used as partition keys and in materialized views (Mark Dilger) \u003ca href=\"https://postgr.es/c/f278e1fe3\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/9d6db8bec\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe index type must still support equality.\u003c/p\u003e","id":"18.0-50b6cc437d755b78","identity_text":"Allow non-btree unique indexes to be used as partition keys and in materialized views (Mark Dilger) The index type must still support equality.","part":"changes","patch_ids":["5bf1633970b359c47772a29d428891b9","afc683b089394ea6ac807e8fc8c1d9ac"],"related_changes":[],"relations":[],"section":"Server / Indexes","section_path":["Server","Indexes"],"source_commits":["9d6db8bec","f278e1fe3"],"source_entry_id":"18.0/changes/017","source_hash":"48d1dc2e21671ed03ec096681269e55993854a87f636152113525b845910da6b","source_url":"/docs/release/18.0/#RELEASE-18-INDEXES","statement_hash":"8627db4022a3b996448b3199a1438d065510142c1a86887f48fb1af1aa338936","text":"Allow non-btree unique indexes to be used as partition keys and in materialized views (Mark Dilger) § § The index type must still support equality.","title":"Allow non-btree unique indexes to be used as partition keys and in materialized views","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["8492feb98"],"commit_groups":[["8492feb98"]],"commits":["8492feb98"],"cves":[],"db_id":"679afe20174701f36f8833868fba691a","html":"\u003cp\u003eAllow \u003ca href=\"/docs/18/gin.html\" title=\"65.4. GIN Indexes\"\u003e\u003ccode\u003eGIN\u003c/code\u003e\u003c/a\u003e indexes to be created in parallel (Tomas Vondra, Matthias van de Meent) \u003ca href=\"https://postgr.es/c/8492feb98\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-456432f04301fe8e","identity_text":"Allow GIN indexes to be created in parallel (Tomas Vondra, Matthias van de Meent)","part":"changes","patch_ids":["86bbb2d786cd9282ec7c0990ac84734b"],"related_changes":[],"relations":[],"section":"Server / Indexes","section_path":["Server","Indexes"],"source_commits":["8492feb98"],"source_entry_id":"18.0/changes/018","source_hash":"01c6d664aa699cd5856bca9e8beb983f220a3bbc4ba438ca287685b016c76882","source_url":"/docs/release/18.0/#RELEASE-18-INDEXES","statement_hash":"4dc151279990477d351d79cd8abfd0af480e2cc275a31cbd790f45a0e112db39","text":"Allow GIN indexes to be created in parallel (Tomas Vondra, Matthias van de Meent) §","title":"Allow GIN indexes to be created in parallel","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["e9e7b6604"],"commit_groups":[["e9e7b6604"]],"commits":["e9e7b6604"],"cves":[],"db_id":"bb89183dc8713a98a5f1732f23ebf357","html":"\u003cp\u003eAllow values to be sorted to speed range-type \u003ca href=\"/docs/18/gist.html\" title=\"65.2. GiST Indexes\"\u003eGiST\u003c/a\u003e and \u003ca href=\"/docs/18/btree.html\" title=\"65.1. B-Tree Indexes\"\u003ebtree\u003c/a\u003e index builds (Bernd Helmle) \u003ca href=\"https://postgr.es/c/e9e7b6604\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-36a61764cd73198e","identity_text":"Allow values to be sorted to speed range-type GiST and btree index builds (Bernd Helmle)","part":"changes","patch_ids":["21b0be863bb11025af07f036adc715cd"],"related_changes":[],"relations":[],"section":"Server / Indexes","section_path":["Server","Indexes"],"source_commits":["e9e7b6604"],"source_entry_id":"18.0/changes/019","source_hash":"ac18bed164464842781add926baf8a19f9b384695cfa6ffc14d622e837b24226","source_url":"/docs/release/18.0/#RELEASE-18-INDEXES","statement_hash":"1110884a4b4193d0fb56b65604f1f84d06c9b027816ac2b2f97f7eb335548e6f","text":"Allow values to be sorted to speed range-type GiST and btree index builds (Bernd Helmle) §","title":"Allow values to be sorted to speed range-type GiST and btree index builds","variants":[],"version":"18.0"},{"also_in":[],"category":"performance","category_label":"Performance","commit_aliases":["02844012b","047cba7fa","06fb5612c","10f664684","12ce89fd0","247ce06b8","2a5e709e7","50cb7505b","55b454d0e","c325a7633","da7226993"],"commit_groups":[["02844012b"],["047cba7fa"],["06fb5612c"],["10f664684"],["12ce89fd0"],["247ce06b8"],["2a5e709e7"],["50cb7505b"],["55b454d0e"],["c325a7633"],["da7226993"]],"commits":["02844012b","047cba7fa","06fb5612c","10f664684","12ce89fd0","247ce06b8","2a5e709e7","50cb7505b","55b454d0e","c325a7633","da7226993"],"cves":[],"db_id":"37483c0834752f309aa567f79e0fff73","html":"\u003cp\u003eAdd an asynchronous I/O subsystem (Andres Freund, Thomas Munro, Nazir Bilal Yavuz, Melanie Plageman) \u003ca href=\"https://postgr.es/c/02844012b\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/da7226993\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/55b454d0e\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/247ce06b8\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/10f664684\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/06fb5612c\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/c325a7633\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/50cb7505b\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/047cba7fa\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/12ce89fd0\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/2a5e709e7\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis feature allows backends to queue multiple read requests, which allows for more efficient sequential scans, bitmap heap scans, vacuums, etc. This is enabled by server variable \u003ca href=\"/docs/18/runtime-config-resource.html#GUC-IO-METHOD\"\u003eio_method\u003c/a\u003e, with server variables \u003ca href=\"/docs/18/runtime-config-resource.html#GUC-IO-COMBINE-LIMIT\"\u003eio_combine_limit\u003c/a\u003e and \u003ca href=\"/docs/18/runtime-config-resource.html#GUC-IO-MAX-COMBINE-LIMIT\"\u003eio_max_combine_limit\u003c/a\u003e added to control it. This also enables \u003ca href=\"/docs/18/runtime-config-resource.html#GUC-EFFECTIVE-IO-CONCURRENCY\"\u003eeffective_io_concurrency\u003c/a\u003e and \u003ca href=\"/docs/18/runtime-config-resource.html#GUC-MAINTENANCE-IO-CONCURRENCY\"\u003emaintenance_io_concurrency\u003c/a\u003e values greater than zero for systems without \u003ccode\u003efadvise()\u003c/code\u003e support. The new system view \u003ca href=\"/docs/18/view-pg-aios.html\" title=\"53.2. pg_aios\"\u003e\u003ccode\u003epg_aios\u003c/code\u003e\u003c/a\u003e shows the file handles being used for asynchronous I/O.\u003c/p\u003e","id":"18.0-fa23d49e1bbd33bf","identity_text":"Add an asynchronous I/O subsystem (Andres Freund, Thomas Munro, Nazir Bilal Yavuz, Melanie Plageman) This feature allows backends to queue multiple read requests, which allows for more efficient sequential scans, bitmap heap scans, vacuums, etc. This is enabled by server variable guc-io-method , with server variables guc-io-combine-limit and guc-io-max-combine-limit added to control it. This also enables guc-effective-io-concurrency and guc-maintenance-io-concurrency values greater than zero for systems without fadvise() support. The new system view pg_aios shows the file handles being used for asynchronous I/O.","part":"changes","patch_ids":["00a9c4d43ad5f440c73f46761173fb9b","0dbc83e3df4c59c2ca262ef445628a22","27d018309a2572d361015743ee98324a","4d8f6ef76cf84da9e8ef4cb69e686748","4f97e5094bf3ab32f794535fbb774657","69011e9c5887d0368badf9df4b6cdb59","6fe75ee49c9ddb6673fc72c6316a6cac","935377894ec40d13d8a0a722ff34d52e","9e38c5e8ef550e2076bcc2e8ab7b4e16","b7142d9ad8162a459c188b676c6a8396","b78c6771a059bc73ee21df19448cd72b"],"related_changes":[],"relations":[],"section":"Server / General Performance","section_path":["Server","General Performance"],"source_commits":["02844012b","047cba7fa","06fb5612c","10f664684","12ce89fd0","247ce06b8","2a5e709e7","50cb7505b","55b454d0e","c325a7633","da7226993"],"source_entry_id":"18.0/changes/020","source_hash":"fdd8656bbf1cf11f97d6fd57102a43e430a4b1b8d8c4d686a0a5ea63a4b0770c","source_url":"/docs/release/18.0/#RELEASE-18-PERFORMANCE","statement_hash":"b96b1508b7345c107e04bf5e3067b8f434fdad4aab6e74bb8cac2ed82dad1d3c","text":"Add an asynchronous I/O subsystem (Andres Freund, Thomas Munro, Nazir Bilal Yavuz, Melanie Plageman) § § § § § § § § § § § This feature allows backends to queue multiple read requests, which allows for more efficient sequential scans, bitmap heap scans, vacuums, etc. This is enabled by server variable io_method, with server variables io_combine_limit and io_max_combine_limit added to control it. This also enables effective_io_concurrency and maintenance_io_concurrency values greater than zero for systems without fadvise() support. The new system view pg_aios shows the file handles being used for asynchronous I/O.","title":"Add an asynchronous I/O subsystem","variants":[],"version":"18.0"},{"also_in":[],"category":"performance","category_label":"Performance","commit_aliases":["c4d5cb71d"],"commit_groups":[["c4d5cb71d"]],"commits":["c4d5cb71d"],"cves":[],"db_id":"aff48c3c83b235bf18a030e9ccc9c3b8","html":"\u003cp\u003eImprove the locking performance of queries that access many relations (Tomas Vondra) \u003ca href=\"https://postgr.es/c/c4d5cb71d\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-bdbe76807453073a","identity_text":"Improve the locking performance of queries that access many relations (Tomas Vondra)","part":"changes","patch_ids":["fc2837c0cff32783885ae70d5fbb55db"],"related_changes":[],"relations":[],"section":"Server / General Performance","section_path":["Server","General Performance"],"source_commits":["c4d5cb71d"],"source_entry_id":"18.0/changes/021","source_hash":"166ed61e81ac65ed621694d2130b525d95cd6eabf81198d9051b9df5a5471b51","source_url":"/docs/release/18.0/#RELEASE-18-PERFORMANCE","statement_hash":"bbf31aaa998b69605f19fb5f3337b504b4ae92cf39abf056f16dadd0b84efe2d","text":"Improve the locking performance of queries that access many relations (Tomas Vondra) §","title":"Improve the locking performance of queries that access many relations","variants":[],"version":"18.0"},{"also_in":[],"category":"performance","category_label":"Performance","commit_aliases":["0f5738202","4d143509c","626df47ad","a0942f441","adf97c156"],"commit_groups":[["0f5738202"],["4d143509c"],["626df47ad"],["a0942f441"],["adf97c156"]],"commits":["0f5738202","4d143509c","626df47ad","a0942f441","adf97c156"],"cves":[],"db_id":"8f6bb5232a0af20918ef87fc2bd9b72d","html":"\u003cp\u003eImprove the performance and reduce memory usage of hash joins and \u003ca href=\"/docs/18/sql-select.html#SQL-GROUPBY\" title=\"GROUP BY Clause\"\u003e\u003ccode\u003eGROUP BY\u003c/code\u003e\u003c/a\u003e (David Rowley, Jeff Davis) \u003ca href=\"https://postgr.es/c/adf97c156\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/0f5738202\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/4d143509c\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/a0942f441\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/626df47ad\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis also improves hash set operations used by \u003ca href=\"/docs/18/sql-select.html#SQL-EXCEPT\" title=\"EXCEPT Clause\"\u003e\u003ccode\u003eEXCEPT\u003c/code\u003e\u003c/a\u003e, and hash lookups of subplan values.\u003c/p\u003e","id":"18.0-b0a8003dc1022a25","identity_text":"Improve the performance and reduce memory usage of hash joins and GROUP BY (David Rowley, Jeff Davis) This also improves hash set operations used by EXCEPT, and hash lookups of subplan values.","part":"changes","patch_ids":["1758487f83257304f9b99a49b55241a1","19978010109b328fc13a2f60b64a87b4","5aefbddf9e57264554b8994d3a88ae3a","66b388b0b82ff195761808bbad7daaa9","951eca554a095ba4544d50657927742d"],"related_changes":[],"relations":[],"section":"Server / General Performance","section_path":["Server","General Performance"],"source_commits":["0f5738202","4d143509c","626df47ad","a0942f441","adf97c156"],"source_entry_id":"18.0/changes/022","source_hash":"9f547ee246a07784a2bed2c258eb059c7b92ae34cf3cf037fa83d8419df57bcc","source_url":"/docs/release/18.0/#RELEASE-18-PERFORMANCE","statement_hash":"4661b20ed989107cc31aef5019cf8c04bc8793452b44fba95b5618841ad4db50","text":"Improve the performance and reduce memory usage of hash joins and GROUP BY (David Rowley, Jeff Davis) § § § § § This also improves hash set operations used by EXCEPT, and hash lookups of subplan values.","title":"Improve the performance and reduce memory usage of hash joins and GROUP BY","variants":[],"version":"18.0"},{"also_in":[],"category":"performance","category_label":"Performance","commit_aliases":["052026c9b","06eae9e62"],"commit_groups":[["052026c9b"],["06eae9e62"]],"commits":["052026c9b","06eae9e62"],"cves":[],"db_id":"b143946a18139ecebf85f4773c7419b5","html":"\u003cp\u003eAllow normal vacuums to freeze some pages, even though they are all-visible (Melanie Plageman) \u003ca href=\"https://postgr.es/c/052026c9b\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/06eae9e62\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis reduces the overhead of later full-relation freezing. The aggressiveness of this can be controlled by server variable and per-table setting \u003ca href=\"/docs/18/runtime-config-vacuum.html#GUC-VACUUM-MAX-EAGER-FREEZE-FAILURE-RATE\"\u003evacuum_max_eager_freeze_failure_rate\u003c/a\u003e. Previously vacuum never processed all-visible pages until freezing was required.\u003c/p\u003e","id":"18.0-9d04d053554c175a","identity_text":"Allow normal vacuums to freeze some pages, even though they are all-visible (Melanie Plageman) This reduces the overhead of later full-relation freezing. The aggressiveness of this can be controlled by server variable and per-table setting guc-vacuum-max-eager-freeze-failure-rate . Previously vacuum never processed all-visible pages until freezing was required.","part":"changes","patch_ids":["67ea98ee74614c1e13cce028969b4f44","d3f807b22dffb17b1216f302711474dd"],"related_changes":[],"relations":[],"section":"Server / General Performance","section_path":["Server","General Performance"],"source_commits":["052026c9b","06eae9e62"],"source_entry_id":"18.0/changes/023","source_hash":"067908e36f6001abfd9b89898d6468091c7c408aba70fd6644ef0e6e78945b17","source_url":"/docs/release/18.0/#RELEASE-18-PERFORMANCE","statement_hash":"1d01a6afb8bdd666bc7b3013928540e3f748fdac185055067dcbcfcb19976f2d","text":"Allow normal vacuums to freeze some pages, even though they are all-visible (Melanie Plageman) § § This reduces the overhead of later full-relation freezing. The aggressiveness of this can be controlled by server variable and per-table setting vacuum_max_eager_freeze_failure_rate. Previously vacuum never processed all-visible pages until freezing was required.","title":"Allow normal vacuums to freeze some pages, even though they are all-visible","variants":[],"version":"18.0"},{"also_in":[],"category":"performance","category_label":"Performance","commit_aliases":["0164a0f9e"],"commit_groups":[["0164a0f9e"]],"commits":["0164a0f9e"],"cves":[],"db_id":"d1bf74ed1cb4e3fbacc9001855d15f16","html":"\u003cp\u003eAdd server variable \u003ca href=\"/docs/18/runtime-config-vacuum.html#GUC-VACUUM-TRUNCATE\"\u003evacuum_truncate\u003c/a\u003e to control file truncation during \u003ca href=\"/docs/18/sql-vacuum.html\" title=\"VACUUM\"\u003e\u003cspan\u003eVACUUM\u003c/span\u003e\u003c/a\u003e (Nathan Bossart, Gurjeet Singh) \u003ca href=\"https://postgr.es/c/0164a0f9e\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eA storage-level parameter with the same name and behavior already existed.\u003c/p\u003e","id":"18.0-f532d30d19208618","identity_text":"Add server variable guc-vacuum-truncate to control file truncation during sql-vacuum (Nathan Bossart, Gurjeet Singh) A storage-level parameter with the same name and behavior already existed.","part":"changes","patch_ids":["be7bc9e56cdce4915b9e4a702d43e637"],"related_changes":[],"relations":[],"section":"Server / General Performance","section_path":["Server","General Performance"],"source_commits":["0164a0f9e"],"source_entry_id":"18.0/changes/024","source_hash":"3bdf7d1f300811ca038842a0cc4e774e2520f4329d021c60a179b690525ba77f","source_url":"/docs/release/18.0/#RELEASE-18-PERFORMANCE","statement_hash":"944b8ce94c10828d6d6910957cf641b88dc95d22b1b8115647738cec01db9fbe","text":"Add server variable vacuum_truncate to control file truncation during VACUUM (Nathan Bossart, Gurjeet Singh) § A storage-level parameter with the same name and behavior already existed.","title":"Add server variable vacuum_truncate to control file truncation during VACUUM","variants":[],"version":"18.0"},{"also_in":[],"category":"performance","category_label":"Performance","commit_aliases":["cc6be07eb","ff79b5b2a"],"commit_groups":[["cc6be07eb"],["ff79b5b2a"]],"commits":["cc6be07eb","ff79b5b2a"],"cves":[],"db_id":"426d3063330d1605a0f8dada895702c7","html":"\u003cp\u003eIncrease server variables \u003ca href=\"/docs/18/runtime-config-resource.html#GUC-EFFECTIVE-IO-CONCURRENCY\"\u003eeffective_io_concurrency\u003c/a\u003e's and \u003ca href=\"/docs/18/runtime-config-resource.html#GUC-MAINTENANCE-IO-CONCURRENCY\"\u003emaintenance_io_concurrency\u003c/a\u003e's default values to 16 (Melanie Plageman) \u003ca href=\"https://postgr.es/c/ff79b5b2a\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/cc6be07eb\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis more accurately reflects modern hardware.\u003c/p\u003e","id":"18.0-6a0f68c7a6c59848","identity_text":"Increase server variables guc-effective-io-concurrency 's and guc-maintenance-io-concurrency 's default values to 16 (Melanie Plageman) This more accurately reflects modern hardware.","part":"changes","patch_ids":["5048dc209f8f981f9a097d9636573570","711b2163ed88e992fa8f7ebd50bcabfe"],"related_changes":[],"relations":[],"section":"Server / General Performance","section_path":["Server","General Performance"],"source_commits":["cc6be07eb","ff79b5b2a"],"source_entry_id":"18.0/changes/025","source_hash":"5ed1ab656f1d067bc897340478dcbb402d18bafb76ff5da9b9bec5940ff0e6da","source_url":"/docs/release/18.0/#RELEASE-18-PERFORMANCE","statement_hash":"2388b7de66243eaf67d83494c797d6d1e1d27a9f5ff72da1c364e2e04896d1a4","text":"Increase server variables effective_io_concurrency's and maintenance_io_concurrency's default values to 16 (Melanie Plageman) § § This more accurately reflects modern hardware.","title":"Increase server variables effective_io_concurrency's and maintenance_io_concurrency's default values to 16","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["9219093ca"],"commit_groups":[["9219093ca"]],"commits":["9219093ca"],"cves":[],"db_id":"ff5e5f18a1f9dca408cdf9912c05dbc0","html":"\u003cp\u003eIncrease the logging granularity of server variable \u003ca href=\"/docs/18/runtime-config-logging.html#GUC-LOG-CONNECTIONS\"\u003elog_connections\u003c/a\u003e (Melanie Plageman) \u003ca href=\"https://postgr.es/c/9219093ca\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis server variable was previously only boolean, which is still supported.\u003c/p\u003e","id":"18.0-7eca16540c485be9","identity_text":"Increase the logging granularity of server variable guc-log-connections (Melanie Plageman) This server variable was previously only boolean, which is still supported.","part":"changes","patch_ids":["a7e481af208e8edfa0f5fb1487d6f5da"],"related_changes":[],"relations":[],"section":"Server / Monitoring","section_path":["Server","Monitoring"],"source_commits":["9219093ca"],"source_entry_id":"18.0/changes/026","source_hash":"42fa035457ddebe4280da1ffdf030abca58669ddee1f4de16c1998a7b9a4dfb2","source_url":"/docs/release/18.0/#RELEASE-18-MONITORING","statement_hash":"bdb1f75b5ad766542e4be765b90646c65665a1de272e063859e8ddf2ad109820","text":"Increase the logging granularity of server variable log_connections (Melanie Plageman) § This server variable was previously only boolean, which is still supported.","title":"Increase the logging granularity of server variable log_connections","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["18cd15e70"],"commit_groups":[["18cd15e70"]],"commits":["18cd15e70"],"cves":[],"db_id":"91c81466b98e0b8e4a0d92321b5a517e","html":"\u003cp\u003eAdd \u003ccode\u003elog_connections\u003c/code\u003e option to report the duration of connection stages (Melanie Plageman) \u003ca href=\"https://postgr.es/c/18cd15e70\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-5ced21ab8b3e15c8","identity_text":"Add log_connections option to report the duration of connection stages (Melanie Plageman)","part":"changes","patch_ids":["1b950cb014853bc85d486bf75efaca9d"],"related_changes":[],"relations":[],"section":"Server / Monitoring","section_path":["Server","Monitoring"],"source_commits":["18cd15e70"],"source_entry_id":"18.0/changes/027","source_hash":"41a344a0928e2afe9e641f311ef5ab55d86e85bce333e6a88a6a3c60f59cbdfb","source_url":"/docs/release/18.0/#RELEASE-18-MONITORING","statement_hash":"16c0cad808e5939e479b2dd348ffdbb2ae9c55f3e23728d50e88003bece7df2c","text":"Add log_connections option to report the duration of connection stages (Melanie Plageman) §","title":"Add log_connections option to report the duration of connection stages","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["3516ea768"],"commit_groups":[["3516ea768"]],"commits":["3516ea768"],"cves":[],"db_id":"ec6128df26d217a2eecd0111f2e4d0a0","html":"\u003cp\u003eAdd \u003ca href=\"/docs/18/runtime-config-logging.html#GUC-LOG-LINE-PREFIX\"\u003elog_line_prefix\u003c/a\u003e escape \u003ccode\u003e%L\u003c/code\u003e to output the client \u003cacronym\u003eIP\u003c/acronym\u003e address (Greg Sabino Mullane) \u003ca href=\"https://postgr.es/c/3516ea768\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-929b539b3ad17261","identity_text":"Add guc-log-line-prefix escape %L to output the client IP address (Greg Sabino Mullane)","part":"changes","patch_ids":["245982fa5f97063e1932c06fd291a313"],"related_changes":[],"relations":[],"section":"Server / Monitoring","section_path":["Server","Monitoring"],"source_commits":["3516ea768"],"source_entry_id":"18.0/changes/028","source_hash":"1bdebb7b546333fd73fa5598efd7d15966692b03acaa8bf3b6823e7257095700","source_url":"/docs/release/18.0/#RELEASE-18-MONITORING","statement_hash":"9dce6737c13142a305d26993679d19f61298311469a6a7edc10ef7bcb6bcbfd5","text":"Add log_line_prefix escape %L to output the client IP address (Greg Sabino Mullane) §","title":"Add log_line_prefix escape %L to output the client IP address","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["6d376c3b0","73bdcfab3"],"commit_groups":[["6d376c3b0"],["73bdcfab3"]],"commits":["6d376c3b0","73bdcfab3"],"cves":[],"db_id":"d8e2695d01232405d3118fd953a35550","html":"\u003cp\u003eAdd server variable \u003ca href=\"/docs/18/runtime-config-logging.html#GUC-LOG-LOCK-FAILURES\"\u003elog_lock_failures\u003c/a\u003e to log lock acquisition failures (Yuki Seino, Fujii Masao) \u003ca href=\"https://postgr.es/c/6d376c3b0\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/73bdcfab3\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eSpecifically it reports \u003ca href=\"/docs/18/sql-select.html#SQL-FOR-UPDATE-SHARE\" title=\"The Locking Clause\"\u003e\u003ccode\u003eSELECT ... NOWAIT\u003c/code\u003e\u003c/a\u003e lock failures.\u003c/p\u003e","id":"18.0-4edb641e0b8b7969","identity_text":"Add server variable guc-log-lock-failures to log lock acquisition failures (Yuki Seino, Fujii Masao) Specifically it reports SELECT ... NOWAIT lock failures.","part":"changes","patch_ids":["b077959c977125e9f3753f321bc477a3","e967c5c76962ab8a50984a559a44af22"],"related_changes":[],"relations":[],"section":"Server / Monitoring","section_path":["Server","Monitoring"],"source_commits":["6d376c3b0","73bdcfab3"],"source_entry_id":"18.0/changes/029","source_hash":"a88dff59604d880435132b5b633e2eb67a03d39010449f6c677e07aa3e5c5da7","source_url":"/docs/release/18.0/#RELEASE-18-MONITORING","statement_hash":"86481d735160d1d7650fa217441fd2d70ed271d146fb44fd372e52c1bbfa1210","text":"Add server variable log_lock_failures to log lock acquisition failures (Yuki Seino, Fujii Masao) § § Specifically it reports SELECT ... NOWAIT lock failures.","title":"Add server variable log_lock_failures to log lock acquisition failures","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["30a6ed0ce"],"commit_groups":[["30a6ed0ce"]],"commits":["30a6ed0ce"],"cves":[],"db_id":"9671d2c26d28bca864a1d36f60376f71","html":"\u003cp\u003eModify \u003ca href=\"/docs/18/monitoring-stats.html#MONITORING-PG-STAT-ALL-TABLES-VIEW\" title=\"27.2.19. pg_stat_all_tables\"\u003e\u003ccode\u003epg_stat_all_tables\u003c/code\u003e\u003c/a\u003e and its variants to report the time spent in \u003ca href=\"/docs/18/sql-vacuum.html\" title=\"VACUUM\"\u003e\u003cspan\u003eVACUUM\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/docs/18/sql-analyze.html\" title=\"ANALYZE\"\u003e\u003cspan\u003eANALYZE\u003c/span\u003e\u003c/a\u003e, and their \u003ca href=\"/docs/18/routine-vacuuming.html#AUTOVACUUM\" title=\"24.1.6. The Autovacuum Daemon\"\u003eautomatic\u003c/a\u003e variants (Sami Imseih) \u003ca href=\"https://postgr.es/c/30a6ed0ce\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe new columns are \u003ccode\u003etotal_vacuum_time\u003c/code\u003e, \u003ccode\u003etotal_autovacuum_time\u003c/code\u003e, \u003ccode\u003etotal_analyze_time\u003c/code\u003e, and \u003ccode\u003etotal_autoanalyze_time\u003c/code\u003e.\u003c/p\u003e","id":"18.0-097f657303fd725e","identity_text":"Modify pg_stat_all_tables and its variants to report the time spent in sql-vacuum , sql-analyze , and their automatic variants (Sami Imseih) The new columns are total_vacuum_time, total_autovacuum_time, total_analyze_time, and total_autoanalyze_time.","part":"changes","patch_ids":["c2b3c6594a2d8e4e4efcb86b21ade10b"],"related_changes":[],"relations":[],"section":"Server / Monitoring","section_path":["Server","Monitoring"],"source_commits":["30a6ed0ce"],"source_entry_id":"18.0/changes/030","source_hash":"2092521e84d65496371a602695e86f1b45f3598fa64282cc8e1cb2df767cc998","source_url":"/docs/release/18.0/#RELEASE-18-MONITORING","statement_hash":"904912b4331b059b0493e73dfb45564c4e6f06521c6face3aed12e28924a3bde","text":"Modify pg_stat_all_tables and its variants to report the time spent in VACUUM, ANALYZE, and their automatic variants (Sami Imseih) § The new columns are total_vacuum_time, total_autovacuum_time, total_analyze_time, and total_autoanalyze_time.","title":"Modify pg_stat_all_tables and its variants to report the time spent in VACUUM, ANALYZE, and their automatic variants","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["7720082ae","bb8dff999"],"commit_groups":[["7720082ae"],["bb8dff999"]],"commits":["7720082ae","bb8dff999"],"cves":[],"db_id":"bea9d94f702a252ba6381f744ff75946","html":"\u003cp\u003eAdd delay time reporting to \u003ca href=\"/docs/18/sql-vacuum.html\" title=\"VACUUM\"\u003e\u003cspan\u003eVACUUM\u003c/span\u003e\u003c/a\u003e and \u003ca href=\"/docs/18/sql-analyze.html\" title=\"ANALYZE\"\u003e\u003cspan\u003eANALYZE\u003c/span\u003e\u003c/a\u003e (Bertrand Drouvot, Nathan Bossart) \u003ca href=\"https://postgr.es/c/bb8dff999\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/7720082ae\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis information appears in the server log, the system views \u003ca href=\"/docs/18/progress-reporting.html#VACUUM-PROGRESS-REPORTING\" title=\"27.4.5. VACUUM Progress Reporting\"\u003e\u003ccode\u003epg_stat_progress_vacuum\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"/docs/18/progress-reporting.html#PG-STAT-PROGRESS-ANALYZE-VIEW\" title=\"Table 27.38. pg_stat_progress_analyze View\"\u003e\u003ccode\u003epg_stat_progress_analyze\u003c/code\u003e\u003c/a\u003e, and the output of \u003ca href=\"/docs/18/sql-vacuum.html\" title=\"VACUUM\"\u003e\u003cspan\u003eVACUUM\u003c/span\u003e\u003c/a\u003e and \u003ca href=\"/docs/18/sql-analyze.html\" title=\"ANALYZE\"\u003e\u003cspan\u003eANALYZE\u003c/span\u003e\u003c/a\u003e when in \u003ccode\u003eVERBOSE\u003c/code\u003e mode; tracking must be enabled with the server variable \u003ca href=\"/docs/18/runtime-config-statistics.html#GUC-TRACK-COST-DELAY-TIMING\"\u003etrack_cost_delay_timing\u003c/a\u003e.\u003c/p\u003e","id":"18.0-a8b19ee3c2ebd809","identity_text":"Add delay time reporting to sql-vacuum and sql-analyze (Bertrand Drouvot, Nathan Bossart) This information appears in the server log, the system views pg_stat_progress_vacuum and pg_stat_progress_analyze, and the output of sql-vacuum and sql-analyze when in VERBOSE mode; tracking must be enabled with the server variable guc-track-cost-delay-timing .","part":"changes","patch_ids":["37076735ba20e78cc49b9708ebdff26a","dcc774daa71cb4ef3040110ad61f951b"],"related_changes":[],"relations":[],"section":"Server / Monitoring","section_path":["Server","Monitoring"],"source_commits":["7720082ae","bb8dff999"],"source_entry_id":"18.0/changes/031","source_hash":"c3b6092e0b557183c88361a516e8cd0d9afc4df8b8705c21459ed505607217f1","source_url":"/docs/release/18.0/#RELEASE-18-MONITORING","statement_hash":"fa996a38bca92758da7743b591fad3f548bcd94541d767a9356ea8efbc21a20c","text":"Add delay time reporting to VACUUM and ANALYZE (Bertrand Drouvot, Nathan Bossart) § § This information appears in the server log, the system views pg_stat_progress_vacuum and pg_stat_progress_analyze, and the output of VACUUM and ANALYZE when in VERBOSE mode; tracking must be enabled with the server variable track_cost_delay_timing.","title":"Add delay time reporting to VACUUM and ANALYZE","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["4c1b4cdb8","bb7775234"],"commit_groups":[["4c1b4cdb8"],["bb7775234"]],"commits":["4c1b4cdb8","bb7775234"],"cves":[],"db_id":"89d1e2f5040630b5e6d5d285a3183e17","html":"\u003cp\u003eAdd \u003cacronym\u003eWAL\u003c/acronym\u003e, \u003cacronym\u003eCPU\u003c/acronym\u003e, and average read statistics output to \u003ccode\u003eANALYZE VERBOSE\u003c/code\u003e (Anthonin Bonnefoy) \u003ca href=\"https://postgr.es/c/4c1b4cdb8\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/bb7775234\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-3840c3b2fc9eee99","identity_text":"Add WAL, CPU, and average read statistics output to ANALYZE VERBOSE (Anthonin Bonnefoy)","part":"changes","patch_ids":["b3469919d266e3cb5e6a7fd510fd2e77","e8ed2cc2f82da83716586c11bc4c436b"],"related_changes":[],"relations":[],"section":"Server / Monitoring","section_path":["Server","Monitoring"],"source_commits":["4c1b4cdb8","bb7775234"],"source_entry_id":"18.0/changes/032","source_hash":"1a2dcb5dd39a88693da8ffce12adc58b376cbc99d61e7b665edc8b7a8057486c","source_url":"/docs/release/18.0/#RELEASE-18-MONITORING","statement_hash":"0ba8f5189b2a89deba8c0398b4327b4ea28a27b30cfe526849d9f7dd081e54d5","text":"Add WAL, CPU, and average read statistics output to ANALYZE VERBOSE (Anthonin Bonnefoy) § §","title":"Add WAL, CPU, and average read statistics output to ANALYZE VERBOSE","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["6a8a7ce47"],"commit_groups":[["6a8a7ce47"]],"commits":["6a8a7ce47"],"cves":[],"db_id":"74713f8ae6d85f90e89e18ef3dc6a21d","html":"\u003cp\u003eAdd full \u003cacronym\u003eWAL\u003c/acronym\u003e buffer count to \u003ccode\u003eVACUUM\u003c/code\u003e/\u003ccode\u003eANALYZE (VERBOSE)\u003c/code\u003e and autovacuum log output (Bertrand Drouvot) \u003ca href=\"https://postgr.es/c/6a8a7ce47\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-4b700ed68adb6f38","identity_text":"Add full WAL buffer count to VACUUM/ANALYZE (VERBOSE) and autovacuum log output (Bertrand Drouvot)","part":"changes","patch_ids":["72511d93ea1587fdaf73eba50b91d1d0"],"related_changes":[],"relations":[],"section":"Server / Monitoring","section_path":["Server","Monitoring"],"source_commits":["6a8a7ce47"],"source_entry_id":"18.0/changes/033","source_hash":"c9894dd7993ceae90219fd40d6eb2b8e99c64032b4b6c0c567537ce9d289b65d","source_url":"/docs/release/18.0/#RELEASE-18-MONITORING","statement_hash":"0774d5388d6c2acf1684333e3113f73e85981e8a73cea3b0ab9ee148dc6b388f","text":"Add full WAL buffer count to VACUUM/ANALYZE (VERBOSE) and autovacuum log output (Bertrand Drouvot) §","title":"Add full WAL buffer count to VACUUM/ANALYZE (VERBOSE) and autovacuum log output","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["3f1db99bf","9aea73fc6"],"commit_groups":[["3f1db99bf"],["9aea73fc6"]],"commits":["3f1db99bf","9aea73fc6"],"cves":[],"db_id":"17e6c76925cfbd574a9ae5f72831fa69","html":"\u003cp\u003eAdd per-backend I/O statistics reporting (Bertrand Drouvot) \u003ca href=\"https://postgr.es/c/9aea73fc6\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/3f1db99bf\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe statistics are accessed via \u003ca href=\"/docs/18/monitoring-stats.html#PG-STAT-GET-BACKEND-IO\"\u003e\u003ccode\u003epg_stat_get_backend_io()\u003c/code\u003e\u003c/a\u003e. Per-backend I/O statistics can be cleared via \u003ca href=\"/docs/18/monitoring-stats.html#MONITORING-STATS-FUNCS-TABLE\" title=\"Table 27.36. Additional Statistics Functions\"\u003e\u003ccode\u003epg_stat_reset_backend_stats()\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e","id":"18.0-e35712a71ba201d3","identity_text":"Add per-backend I/O statistics reporting (Bertrand Drouvot) The statistics are accessed via pg_stat_get_backend_io(). Per-backend I/O statistics can be cleared via pg_stat_reset_backend_stats().","part":"changes","patch_ids":["5322e6c9c9cd04d7bf3ea661542be001","a3ee8fafbb9811b8cda82e07e73283f9"],"related_changes":[],"relations":[],"section":"Server / Monitoring","section_path":["Server","Monitoring"],"source_commits":["3f1db99bf","9aea73fc6"],"source_entry_id":"18.0/changes/034","source_hash":"9e1631c53568af593ee7bced63f3b724a0ba10e31a2fd9ed1c4025ad9a38fae7","source_url":"/docs/release/18.0/#RELEASE-18-MONITORING","statement_hash":"caae69fd5330c7bec4af68b84e21c7fc7e7a5d29f7fae594f65a92e7a22165c1","text":"Add per-backend I/O statistics reporting (Bertrand Drouvot) § § The statistics are accessed via pg_stat_get_backend_io(). Per-backend I/O statistics can be cleared via pg_stat_reset_backend_stats().","title":"Add per-backend I/O statistics reporting","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["f92c854cf"],"commit_groups":[["f92c854cf"]],"commits":["f92c854cf"],"cves":[],"db_id":"aa7e8fb55aec7ab4c8224a57cb360b58","html":"\u003cp\u003eAdd \u003ca href=\"/docs/18/monitoring-stats.html#MONITORING-PG-STAT-IO-VIEW\" title=\"27.2.13. pg_stat_io\"\u003e\u003ccode\u003epg_stat_io\u003c/code\u003e\u003c/a\u003e columns to report I/O activity in bytes (Nazir Bilal Yavuz) \u003ca href=\"https://postgr.es/c/f92c854cf\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe new columns are \u003ccode\u003eread_bytes\u003c/code\u003e, \u003ccode\u003ewrite_bytes\u003c/code\u003e, and \u003ccode\u003eextend_bytes\u003c/code\u003e. The \u003ccode\u003eop_bytes\u003c/code\u003e column, which always equaled \u003ca href=\"/docs/18/runtime-config-preset.html#GUC-BLOCK-SIZE\"\u003e\u003ccode\u003eBLCKSZ\u003c/code\u003e\u003c/a\u003e, has been removed.\u003c/p\u003e","id":"18.0-0e96d87fb9dc0733","identity_text":"Add pg_stat_io columns to report I/O activity in bytes (Nazir Bilal Yavuz) The new columns are read_bytes, write_bytes, and extend_bytes. The op_bytes column, which always equaled BLCKSZ, has been removed.","part":"changes","patch_ids":["a311e5aff8043d8480a656b9295d03b6"],"related_changes":[],"relations":[],"section":"Server / Monitoring","section_path":["Server","Monitoring"],"source_commits":["f92c854cf"],"source_entry_id":"18.0/changes/035","source_hash":"97f3dadc86ebdf37ec36e4e556f7f81273a6d2f21452bea7c88377d1a3c561ae","source_url":"/docs/release/18.0/#RELEASE-18-MONITORING","statement_hash":"2e8238782eda3f1431802fe0e4f5c982fab48d2ee3dd4a701ea3842da4484eb0","text":"Add pg_stat_io columns to report I/O activity in bytes (Nazir Bilal Yavuz) § The new columns are read_bytes, write_bytes, and extend_bytes. The op_bytes column, which always equaled BLCKSZ, has been removed.","title":"Add pg_stat_io columns to report I/O activity in bytes","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["4538bd3f1","7f7f324eb","a051e71e2"],"commit_groups":[["4538bd3f1"],["7f7f324eb"],["a051e71e2"]],"commits":["4538bd3f1","7f7f324eb","a051e71e2"],"cves":[],"db_id":"4e8a04b21c8fb51fcf294e0a57d8462f","html":"\u003cp\u003eAdd \u003cacronym\u003eWAL\u003c/acronym\u003e I/O activity rows to \u003ccode\u003epg_stat_io\u003c/code\u003e (Nazir Bilal Yavuz, Bertrand Drouvot, Michael Paquier) \u003ca href=\"https://postgr.es/c/a051e71e2\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/4538bd3f1\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/7f7f324eb\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis includes \u003cacronym\u003eWAL\u003c/acronym\u003e receiver activity and a wait event for such writes.\u003c/p\u003e","id":"18.0-3b56014060aade39","identity_text":"Add WAL I/O activity rows to pg_stat_io (Nazir Bilal Yavuz, Bertrand Drouvot, Michael Paquier) This includes WAL receiver activity and a wait event for such writes.","part":"changes","patch_ids":["0abab9a405c724624eabd4509d63171e","3d509df32980788958c9572c50adb4fd","bef53f830f1ba9f3cda0cc8ff4ed91e6"],"related_changes":[],"relations":[],"section":"Server / Monitoring","section_path":["Server","Monitoring"],"source_commits":["4538bd3f1","7f7f324eb","a051e71e2"],"source_entry_id":"18.0/changes/036","source_hash":"1073fae0e1addc89e2446fa37b2acba1f913d9723e1c4429053ee3268c3f10de","source_url":"/docs/release/18.0/#RELEASE-18-MONITORING","statement_hash":"c5453439738584b897b3afc314105f41051f5aa95d24752734738916b65af097","text":"Add WAL I/O activity rows to pg_stat_io (Nazir Bilal Yavuz, Bertrand Drouvot, Michael Paquier) § § § This includes WAL receiver activity and a wait event for such writes.","title":"Add WAL I/O activity rows to pg_stat_io","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["6c349d83b"],"commit_groups":[["6c349d83b"]],"commits":["6c349d83b"],"cves":[],"db_id":"c17f05a65724a6039aa7e121e771aa10","html":"\u003cp\u003eChange server variable \u003ca href=\"/docs/18/runtime-config-statistics.html#GUC-TRACK-WAL-IO-TIMING\"\u003etrack_wal_io_timing\u003c/a\u003e to control tracking \u003cacronym\u003eWAL\u003c/acronym\u003e timing in \u003ccode\u003epg_stat_io\u003c/code\u003e instead of \u003ca href=\"/docs/18/monitoring-stats.html#PG-STAT-WAL-VIEW\" title=\"Table 27.26. pg_stat_wal View\"\u003e\u003ccode\u003epg_stat_wal\u003c/code\u003e\u003c/a\u003e (Bertrand Drouvot) \u003ca href=\"https://postgr.es/c/6c349d83b\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-6c1a9bdb1bd7fe74","identity_text":"Change server variable guc-track-wal-io-timing to control tracking WAL timing in pg_stat_io instead of pg_stat_wal (Bertrand Drouvot)","part":"changes","patch_ids":["08fb6ea64d401512c5db7dbb4b9241af"],"related_changes":[{"db_id":"d0fcc1877409f4702f061ff62c4a5fe9","evidence":{"ambiguous_patch_ids":["08fb6ea64d401512c5db7dbb4b9241af"],"patch_ids":["08fb6ea64d401512c5db7dbb4b9241af"],"same_day":true},"kind":"related","label":"18.0","source_url":"/docs/release/18.0/#RELEASE-18-MONITORING","title":"Remove read/sync columns from pg_stat_wal","url":"/docs/compare/?release=18.0#18.0-202a628b223b3b6a","version":"18.0"}],"relations":[{"evidence":{"ambiguous_patch_ids":["08fb6ea64d401512c5db7dbb4b9241af"],"patch_ids":["08fb6ea64d401512c5db7dbb4b9241af"],"same_day":true},"rule":2,"target":"d0fcc1877409f4702f061ff62c4a5fe9","type":"related"}],"section":"Server / Monitoring","section_path":["Server","Monitoring"],"source_commits":["6c349d83b"],"source_entry_id":"18.0/changes/037","source_hash":"d1231847afefe1d4d74417eeedaf338d2e73d369b33a3039d07def9f38206fd7","source_url":"/docs/release/18.0/#RELEASE-18-MONITORING","statement_hash":"2f7ae7e2bcef0b17495e3f738ab823ef4fa3a7ff6d607334d8ca8141298e26c2","text":"Change server variable track_wal_io_timing to control tracking WAL timing in pg_stat_io instead of pg_stat_wal (Bertrand Drouvot) §","title":"Change server variable track_wal_io_timing to control tracking WAL timing in pg_stat_io instead of pg_stat_wal","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["2421e9a51","6c349d83b"],"commit_groups":[["2421e9a51"],["6c349d83b"]],"commits":["2421e9a51","6c349d83b"],"cves":[],"db_id":"d0fcc1877409f4702f061ff62c4a5fe9","html":"\u003cp\u003eRemove read/sync columns from \u003ccode\u003epg_stat_wal\u003c/code\u003e (Bertrand Drouvot) \u003ca href=\"https://postgr.es/c/2421e9a51\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/6c349d83b\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis removes columns \u003ccode\u003ewal_write\u003c/code\u003e, \u003ccode\u003ewal_sync\u003c/code\u003e, \u003ccode\u003ewal_write_time\u003c/code\u003e, and \u003ccode\u003ewal_sync_time\u003c/code\u003e.\u003c/p\u003e","id":"18.0-202a628b223b3b6a","identity_text":"Remove read/sync columns from pg_stat_wal (Bertrand Drouvot) This removes columns wal_write, wal_sync, wal_write_time, and wal_sync_time.","part":"changes","patch_ids":["08fb6ea64d401512c5db7dbb4b9241af","234c05d3f38c109ec2b38a93d6ac0806"],"related_changes":[{"db_id":"c17f05a65724a6039aa7e121e771aa10","evidence":{"ambiguous_patch_ids":["08fb6ea64d401512c5db7dbb4b9241af"],"patch_ids":["08fb6ea64d401512c5db7dbb4b9241af"],"same_day":true},"kind":"related","label":"18.0","source_url":"/docs/release/18.0/#RELEASE-18-MONITORING","title":"Change server variable track_wal_io_timing to control tracking WAL timing in pg_stat_io instead of pg_stat_wal","url":"/docs/compare/?release=18.0#18.0-6c1a9bdb1bd7fe74","version":"18.0"}],"relations":[{"evidence":{"ambiguous_patch_ids":["08fb6ea64d401512c5db7dbb4b9241af"],"patch_ids":["08fb6ea64d401512c5db7dbb4b9241af"],"same_day":true},"rule":2,"target":"c17f05a65724a6039aa7e121e771aa10","type":"related"}],"section":"Server / Monitoring","section_path":["Server","Monitoring"],"source_commits":["2421e9a51","6c349d83b"],"source_entry_id":"18.0/changes/038","source_hash":"bdbb6b727ae2ec12ad3bc55377abbd441295c2aa83487fdcb3a37f0805a08762","source_url":"/docs/release/18.0/#RELEASE-18-MONITORING","statement_hash":"7b33f152d6e61381fe6be52ffbdfe42a5da00b89105becd3eb6f9de24b2b319c","text":"Remove read/sync columns from pg_stat_wal (Bertrand Drouvot) § § This removes columns wal_write, wal_sync, wal_write_time, and wal_sync_time.","title":"Remove read/sync columns from pg_stat_wal","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["76def4cdd"],"commit_groups":[["76def4cdd"]],"commits":["76def4cdd"],"cves":[],"db_id":"062885cb962fb66b290bfca5b7d287a1","html":"\u003cp\u003eAdd function \u003ca href=\"/docs/18/monitoring-stats.html#PG-STAT-GET-BACKEND-WAL\"\u003e\u003ccode\u003epg_stat_get_backend_wal()\u003c/code\u003e\u003c/a\u003e to return per-backend \u003cacronym\u003eWAL\u003c/acronym\u003e statistics (Bertrand Drouvot) \u003ca href=\"https://postgr.es/c/76def4cdd\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePer-backend \u003cacronym\u003eWAL\u003c/acronym\u003e statistics can be cleared via \u003ca href=\"/docs/18/monitoring-stats.html#MONITORING-STATS-FUNCS-TABLE\" title=\"Table 27.36. Additional Statistics Functions\"\u003e\u003ccode\u003epg_stat_reset_backend_stats()\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e","id":"18.0-634291e59601ff91","identity_text":"Add function pg_stat_get_backend_wal() to return per-backend WAL statistics (Bertrand Drouvot) Per-backend WAL statistics can be cleared via pg_stat_reset_backend_stats().","part":"changes","patch_ids":["4e24f0fbea0bfb8adf57d60deed85cbe"],"related_changes":[],"relations":[],"section":"Server / Monitoring","section_path":["Server","Monitoring"],"source_commits":["76def4cdd"],"source_entry_id":"18.0/changes/039","source_hash":"242f296d8a20316ed2428d9cc9afa62a44163367fa7e0849e047ee688cfea11f","source_url":"/docs/release/18.0/#RELEASE-18-MONITORING","statement_hash":"b74d0e38b049943fe62ccf7336ca21fd4a9fd9d020f9b94347272b09da3db5af","text":"Add function pg_stat_get_backend_wal() to return per-backend WAL statistics (Bertrand Drouvot) § Per-backend WAL statistics can be cleared via pg_stat_reset_backend_stats().","title":"Add function pg_stat_get_backend_wal() to return per-backend WAL statistics","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["4e1fad378"],"commit_groups":[["4e1fad378"]],"commits":["4e1fad378"],"cves":[],"db_id":"b9a68e06cac60dffdbd6bf6eb05a794e","html":"\u003cp\u003eAdd function \u003ca href=\"/docs/18/functions-admin.html#FUNCTIONS-ADMIN-GENFILE-TABLE\" title=\"Table 9.108. Generic File Access Functions\"\u003e\u003ccode\u003epg_ls_summariesdir()\u003c/code\u003e\u003c/a\u003e to specifically list the contents of \u003ca href=\"/docs/18/storage-file-layout.html\" title=\"66.1. Database File Layout\"\u003e\u003ccode\u003ePGDATA\u003c/code\u003e\u003c/a\u003e/\u003ca href=\"/docs/18/runtime-config-wal.html#GUC-WAL-SUMMARY-KEEP-TIME\"\u003e\u003ccode\u003epg_wal/summaries\u003c/code\u003e\u003c/a\u003e (Yushi Ogiwara) \u003ca href=\"https://postgr.es/c/4e1fad378\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-b4a386c2e779722f","identity_text":"Add function pg_ls_summariesdir() to specifically list the contents of PGDATA/pg_wal/summaries (Yushi Ogiwara)","part":"changes","patch_ids":["9fe64e076fe5fc2c95c8fa5ba6f057ef"],"related_changes":[],"relations":[],"section":"Server / Monitoring","section_path":["Server","Monitoring"],"source_commits":["4e1fad378"],"source_entry_id":"18.0/changes/040","source_hash":"d6ccff9c03df46b05091a267c2cb8b7b5535dedef74c43578dfaf0e9d97bb59f","source_url":"/docs/release/18.0/#RELEASE-18-MONITORING","statement_hash":"09d2ba0760f22482dda1728ad727396c99942f333bb0a66ba64ce98dfb4017c7","text":"Add function pg_ls_summariesdir() to specifically list the contents of PGDATA/pg_wal/summaries (Yushi Ogiwara) §","title":"Add function pg_ls_summariesdir() to specifically list the contents of PGDATA/pg_wal/summaries","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["559efce1d"],"commit_groups":[["559efce1d"]],"commits":["559efce1d"],"cves":[],"db_id":"066d4a943702f3b2e401f4e7aae7deab","html":"\u003cp\u003eAdd column \u003ca href=\"/docs/18/monitoring-stats.html#MONITORING-PG-STAT-CHECKPOINTER-VIEW\" title=\"27.2.15. pg_stat_checkpointer\"\u003e\u003ccode\u003epg_stat_checkpointer\u003c/code\u003e\u003c/a\u003e.\u003ccode\u003enum_done\u003c/code\u003e to report the number of completed checkpoints (Anton A. Melnikov) \u003ca href=\"https://postgr.es/c/559efce1d\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eColumns \u003ccode\u003enum_timed\u003c/code\u003e and \u003ccode\u003enum_requested\u003c/code\u003e count both completed and skipped checkpoints.\u003c/p\u003e","id":"18.0-2ab3ba61126a6e6f","identity_text":"Add column pg_stat_checkpointer.num_done to report the number of completed checkpoints (Anton A. Melnikov) Columns num_timed and num_requested count both completed and skipped checkpoints.","part":"changes","patch_ids":["c949e573ffaba7a2a8d27d7162de1f0b"],"related_changes":[],"relations":[],"section":"Server / Monitoring","section_path":["Server","Monitoring"],"source_commits":["559efce1d"],"source_entry_id":"18.0/changes/041","source_hash":"b0f52803f5eace4dd8a6f300af475cd3f6d7567d9e52472b06a815ec78abd658","source_url":"/docs/release/18.0/#RELEASE-18-MONITORING","statement_hash":"68a8924f2cff332cb007ffe69e69b6126cb2165fc11751dbddcea61dcddacc3a","text":"Add column pg_stat_checkpointer.num_done to report the number of completed checkpoints (Anton A. Melnikov) § Columns num_timed and num_requested count both completed and skipped checkpoints.","title":"Add column pg_stat_checkpointer.num_done to report the number of completed checkpoints","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["17cc5f666"],"commit_groups":[["17cc5f666"]],"commits":["17cc5f666"],"cves":[],"db_id":"c727bac201403ee5787ce91519d78b8f","html":"\u003cp\u003eAdd column \u003ccode\u003epg_stat_checkpointer\u003c/code\u003e.\u003ccode\u003eslru_written\u003c/code\u003e to report \u003cacronym\u003eSLRU\u003c/acronym\u003e buffers written (Nitin Jadhav) \u003ca href=\"https://postgr.es/c/17cc5f666\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eAlso, modify the checkpoint server log message to report separate shared buffer and \u003cacronym\u003eSLRU\u003c/acronym\u003e buffer values.\u003c/p\u003e","id":"18.0-61ce84aa748564e5","identity_text":"Add column pg_stat_checkpointer.slru_written to report SLRU buffers written (Nitin Jadhav) Also, modify the checkpoint server log message to report separate shared buffer and SLRU buffer values.","part":"changes","patch_ids":["d6837b0ccfa7bed8d3ef332bff20c386"],"related_changes":[],"relations":[],"section":"Server / Monitoring","section_path":["Server","Monitoring"],"source_commits":["17cc5f666"],"source_entry_id":"18.0/changes/042","source_hash":"e3cd14d094f854569dcf0a7ec616f689d1baac8a113db529f691cfd28c517c08","source_url":"/docs/release/18.0/#RELEASE-18-MONITORING","statement_hash":"d75f1cff8692d2b125311380a9eb939eed72a5eec22bed4041dad77e8aed16e7","text":"Add column pg_stat_checkpointer.slru_written to report SLRU buffers written (Nitin Jadhav) § Also, modify the checkpoint server log message to report separate shared buffer and SLRU buffer values.","title":"Add column pg_stat_checkpointer.slru_written to report SLRU buffers written","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["e7a9496de"],"commit_groups":[["e7a9496de"]],"commits":["e7a9496de"],"cves":[],"db_id":"dfce089734ba453a8b429200599d48f4","html":"\u003cp\u003eAdd columns to \u003ca href=\"/docs/18/monitoring-stats.html#MONITORING-PG-STAT-DATABASE-VIEW\" title=\"27.2.17. pg_stat_database\"\u003e\u003ccode\u003epg_stat_database\u003c/code\u003e\u003c/a\u003e to report parallel worker activity (Benoit Lobréau) \u003ca href=\"https://postgr.es/c/e7a9496de\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe new columns are \u003ccode\u003eparallel_workers_to_launch\u003c/code\u003e and \u003ccode\u003eparallel_workers_launched\u003c/code\u003e.\u003c/p\u003e","id":"18.0-50beb09b38031570","identity_text":"Add columns to pg_stat_database to report parallel worker activity (Benoit Lobréau) The new columns are parallel_workers_to_launch and parallel_workers_launched.","part":"changes","patch_ids":["537ec52eb436dc276f2922a0463b3fde"],"related_changes":[],"relations":[],"section":"Server / Monitoring","section_path":["Server","Monitoring"],"source_commits":["e7a9496de"],"source_entry_id":"18.0/changes/043","source_hash":"eb7a9a2fcda5d6b360e1516a8ecfca3e10034c0773a50d5480dd72cbbe41a363","source_url":"/docs/release/18.0/#RELEASE-18-MONITORING","statement_hash":"2a16728a2a22066209d758116c71b02d570e00dc834d54006e01a8747ab449a3","text":"Add columns to pg_stat_database to report parallel worker activity (Benoit Lobréau) § The new columns are parallel_workers_to_launch and parallel_workers_launched.","title":"Add columns to pg_stat_database to report parallel worker activity","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["62d712ecf","9fbd53dea","c2da1a5d6"],"commit_groups":[["62d712ecf"],["9fbd53dea"],["c2da1a5d6"]],"commits":["62d712ecf","9fbd53dea","c2da1a5d6"],"cves":[],"db_id":"602391884e0f9956bc8189e3df9fa46c","html":"\u003cp\u003eHave \u003ca href=\"/docs/18/runtime-config-statistics.html#GUC-COMPUTE-QUERY-ID\"\u003equery id\u003c/a\u003e computation of constant lists consider only the first and last constants (Dmitry Dolgov, Sami Imseih) \u003ca href=\"https://postgr.es/c/62d712ecf\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/9fbd53dea\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/c2da1a5d6\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJumbling is used by \u003ca href=\"/docs/18/pgstatstatements.html\" title=\"F.32. pg_stat_statements — track statistics of SQL planning and execution\"\u003epg_stat_statements\u003c/a\u003e.\u003c/p\u003e","id":"18.0-e0b7fcc669e7cd20","identity_text":"Have query id computation of constant lists consider only the first and last constants (Dmitry Dolgov, Sami Imseih) Jumbling is used by pgstatstatements .","part":"changes","patch_ids":["5788e402f9a32d0839d25eda04d2e777","892e3023e3eb75d6d37898823ef6e17d","b602290e314da4eb2c893c183d542ea2"],"related_changes":[],"relations":[],"section":"Server / Monitoring","section_path":["Server","Monitoring"],"source_commits":["62d712ecf","9fbd53dea","c2da1a5d6"],"source_entry_id":"18.0/changes/044","source_hash":"2cf9373f5b7eddab9fd5ff38dada6cd3257b8f28a837aed595560e11f200a37d","source_url":"/docs/release/18.0/#RELEASE-18-MONITORING","statement_hash":"15594176dafd96eadc8774ee3c07b03bfac584e26aab1114deaf08975c0d6fa7","text":"Have query id computation of constant lists consider only the first and last constants (Dmitry Dolgov, Sami Imseih) § § § Jumbling is used by pg_stat_statements.","title":"Have query id computation of constant lists consider only the first and last constants","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["787514b30"],"commit_groups":[["787514b30"]],"commits":["787514b30"],"cves":[],"db_id":"b3b7d2a11d4d31f38f5974d4bc93b3e3","html":"\u003cp\u003eAdjust query id computations to group together queries using the same relation name (Michael Paquier, Sami Imseih) \u003ca href=\"https://postgr.es/c/787514b30\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is true even if the tables in different schemas have different column names.\u003c/p\u003e","id":"18.0-4bd7c5c5ceccdfa2","identity_text":"Adjust query id computations to group together queries using the same relation name (Michael Paquier, Sami Imseih) This is true even if the tables in different schemas have different column names.","part":"changes","patch_ids":["79273c32213aef68723d02e288664812"],"related_changes":[],"relations":[],"section":"Server / Monitoring","section_path":["Server","Monitoring"],"source_commits":["787514b30"],"source_entry_id":"18.0/changes/045","source_hash":"09abeab4f5099639b5d52aa31679edc914c3b3c20594c0d395bf45bf491d5e09","source_url":"/docs/release/18.0/#RELEASE-18-MONITORING","statement_hash":"4cd23dc47a6dcb75efe88b4674803607d5b63bfc8d8855e3822b801ecc934093","text":"Adjust query id computations to group together queries using the same relation name (Michael Paquier, Sami Imseih) § This is true even if the tables in different schemas have different column names.","title":"Adjust query id computations to group together queries using the same relation name","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["12227a1d5"],"commit_groups":[["12227a1d5"]],"commits":["12227a1d5"],"cves":[],"db_id":"1fd42df52ed332c3d9d9f6ae19b16420","html":"\u003cp\u003eAdd column \u003ca href=\"/docs/18/view-pg-backend-memory-contexts.html\" title=\"53.5. pg_backend_memory_contexts\"\u003e\u003ccode\u003epg_backend_memory_contexts\u003c/code\u003e\u003c/a\u003e.\u003ccode\u003etype\u003c/code\u003e to report the type of memory context (David Rowley) \u003ca href=\"https://postgr.es/c/12227a1d5\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-3402d3ff0e2cd897","identity_text":"Add column pg_backend_memory_contexts.type to report the type of memory context (David Rowley)","part":"changes","patch_ids":["3977b1d7e6d02dc670220e1e3b219267"],"related_changes":[],"relations":[],"section":"Server / Monitoring","section_path":["Server","Monitoring"],"source_commits":["12227a1d5"],"source_entry_id":"18.0/changes/046","source_hash":"15d29754ae427a052443f1a6626960cf94ba6bda77f6df23ffbece3059a2aaf5","source_url":"/docs/release/18.0/#RELEASE-18-MONITORING","statement_hash":"24fbd68903b1f42423f271865f961e17ce5f1d8baa7a044061a3e8d64d131bfc","text":"Add column pg_backend_memory_contexts.type to report the type of memory context (David Rowley) §","title":"Add column pg_backend_memory_contexts.type to report the type of memory context","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["32d3ed816"],"commit_groups":[["32d3ed816"]],"commits":["32d3ed816"],"cves":[],"db_id":"7ed5d279df474d7ce518a2cd605d091d","html":"\u003cp\u003eAdd column \u003ccode\u003epg_backend_memory_contexts\u003c/code\u003e.\u003ccode\u003epath\u003c/code\u003e to show memory context parents (Melih Mutlu) \u003ca href=\"https://postgr.es/c/32d3ed816\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-f9c2e124d8a94a20","identity_text":"Add column pg_backend_memory_contexts.path to show memory context parents (Melih Mutlu)","part":"changes","patch_ids":["eaa8db2e49e44f9880c123bf159cab42"],"related_changes":[{"db_id":"b8c57d935d8b183f9ee20e7477f90abd","evidence":{"patch_ids":["eaa8db2e49e44f9880c123bf159cab42"],"same_day":true},"kind":"related","label":"18.0","source_url":"/docs/release/18.0/#RELEASE-18-MIGRATION","title":"Change pg_backend_memory_contexts.level and pg_log_backend_memory_contexts() to be one-based","url":"/docs/compare/?release=18.0#18.0-3bddcb1c02f74659","version":"18.0"}],"relations":[{"evidence":{"patch_ids":["eaa8db2e49e44f9880c123bf159cab42"],"same_day":true},"rule":2,"target":"b8c57d935d8b183f9ee20e7477f90abd","type":"related"}],"section":"Server / Monitoring","section_path":["Server","Monitoring"],"source_commits":["32d3ed816"],"source_entry_id":"18.0/changes/047","source_hash":"fe70390be48a7656a5a036d23b8695f7dd1cb00476e46001e3b1ed259d1548af","source_url":"/docs/release/18.0/#RELEASE-18-MONITORING","statement_hash":"ffa15ce62078a744cf44121cfda2949c530bd7fb777e4900033a28988556de13","text":"Add column pg_backend_memory_contexts.path to show memory context parents (Melih Mutlu) §","title":"Add column pg_backend_memory_contexts.path to show memory context parents","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["4564f1ceb","d898665bf"],"commit_groups":[["4564f1ceb"],["d898665bf"]],"commits":["4564f1ceb","d898665bf"],"cves":[],"db_id":"ad850851b5569f2cacc651752f08d04f","html":"\u003cp\u003eAdd function \u003ca href=\"/docs/18/functions-info.html#FUNCTIONS-INFO-OBJECT-TABLE\" title=\"Table 9.81. Object Information and Addressing Functions\"\u003e\u003ccode\u003epg_get_acl()\u003c/code\u003e\u003c/a\u003e to retrieve database access control details (Joel Jacobson) \u003ca href=\"https://postgr.es/c/4564f1ceb\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/d898665bf\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-33915810b55250be","identity_text":"Add function pg_get_acl() to retrieve database access control details (Joel Jacobson)","part":"changes","patch_ids":["4dc0424113c1959079f3a8cbcd6d075c","6f98238a578fbdf3c4f8b2f8442a9443"],"related_changes":[],"relations":[],"section":"Server / Privileges","section_path":["Server","Privileges"],"source_commits":["4564f1ceb","d898665bf"],"source_entry_id":"18.0/changes/048","source_hash":"39a0e54cf10496289f448e8b5cf7a83ad0f4a1dad5d8b88bc38a045012595af3","source_url":"/docs/release/18.0/#RELEASE-18-PRIVILEGES","statement_hash":"b5738fc376219c85ab240a4d03d8c61a19c7ef3218d218a2f99f961cfa02ae1d","text":"Add function pg_get_acl() to retrieve database access control details (Joel Jacobson) § §","title":"Add function pg_get_acl() to retrieve database access control details","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["4eada203a"],"commit_groups":[["4eada203a"]],"commits":["4eada203a"],"cves":[],"db_id":"20e548031e0fa774a44ef2ccda8b5768","html":"\u003cp\u003eAdd function \u003ca href=\"/docs/18/functions-info.html#FUNCTIONS-INFO-ACCESS-TABLE\" title=\"Table 9.72. Access Privilege Inquiry Functions\"\u003e\u003ccode\u003ehas_largeobject_privilege()\u003c/code\u003e\u003c/a\u003e to check large object privileges (Yugo Nagata) \u003ca href=\"https://postgr.es/c/4eada203a\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-e083e86b0999f401","identity_text":"Add function has_largeobject_privilege() to check large object privileges (Yugo Nagata)","part":"changes","patch_ids":["692c244b77bff2a8f3509d0f3f788fb5"],"related_changes":[],"relations":[],"section":"Server / Privileges","section_path":["Server","Privileges"],"source_commits":["4eada203a"],"source_entry_id":"18.0/changes/049","source_hash":"bbfbf3c3ece75a40f49e6a874bdb5b72ba58a27f32a5ea35fd4d4c1eac892598","source_url":"/docs/release/18.0/#RELEASE-18-PRIVILEGES","statement_hash":"31f9f08133b37f73a56f5218942b92e031210ec05cba9a6cb6d49d942bfbac20","text":"Add function has_largeobject_privilege() to check large object privileges (Yugo Nagata) §","title":"Add function has_largeobject_privilege() to check large object privileges","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["0d6c47766"],"commit_groups":[["0d6c47766"]],"commits":["0d6c47766"],"cves":[],"db_id":"2115b59fe3ecb850d34420db9087d6ee","html":"\u003cp\u003eAllow \u003ca href=\"/docs/18/sql-alterdefaultprivileges.html\" title=\"ALTER DEFAULT PRIVILEGES\"\u003e\u003cspan\u003eALTER DEFAULT PRIVILEGES\u003c/span\u003e\u003c/a\u003e to define large object default privileges (Takatsuka Haruka, Yugo Nagata, Laurenz Albe) \u003ca href=\"https://postgr.es/c/0d6c47766\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-48cbad33bf051182","identity_text":"Allow sql-alterdefaultprivileges to define large object default privileges (Takatsuka Haruka, Yugo Nagata, Laurenz Albe)","part":"changes","patch_ids":["8bd885a988ec8e858d73081f630fd33d"],"related_changes":[],"relations":[],"section":"Server / Privileges","section_path":["Server","Privileges"],"source_commits":["0d6c47766"],"source_entry_id":"18.0/changes/050","source_hash":"4c91df429994b748ca8f11482114f697801f5b8c6c8b714ebf14f04619bf4653","source_url":"/docs/release/18.0/#RELEASE-18-PRIVILEGES","statement_hash":"91512a6ced76577a52c71c7f1692309e60bb18dc1ce44331c056f04fd50fb429","text":"Allow ALTER DEFAULT PRIVILEGES to define large object default privileges (Takatsuka Haruka, Yugo Nagata, Laurenz Albe) §","title":"Allow ALTER DEFAULT PRIVILEGES to define large object default privileges","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["ccd38024b"],"commit_groups":[["ccd38024b"]],"commits":["ccd38024b"],"cves":[],"db_id":"20b3f6628c87707ad4d0eb8fd8768e0a","html":"\u003cp\u003eAdd predefined role \u003ca href=\"/docs/18/predefined-roles.html\" title=\"21.5. Predefined Roles\"\u003e\u003ccode\u003epg_signal_autovacuum_worker\u003c/code\u003e\u003c/a\u003e (Kirill Reshke) \u003ca href=\"https://postgr.es/c/ccd38024b\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis allows sending signals to autovacuum workers.\u003c/p\u003e","id":"18.0-63bd5329a9fe779c","identity_text":"Add predefined role pg_signal_autovacuum_worker (Kirill Reshke) This allows sending signals to autovacuum workers.","part":"changes","patch_ids":["a254744dab5b2721c5babac8740a351d"],"related_changes":[],"relations":[],"section":"Server / Privileges","section_path":["Server","Privileges"],"source_commits":["ccd38024b"],"source_entry_id":"18.0/changes/051","source_hash":"bfdef5e379e1781509025a5997d7b24eee477202a1c63fdf10ed414f0ba7b3e4","source_url":"/docs/release/18.0/#RELEASE-18-PRIVILEGES","statement_hash":"c15408fea664f43b416b4b112fe35a5f8e4c76546718ab374fef03190e47327d","text":"Add predefined role pg_signal_autovacuum_worker (Kirill Reshke) § This allows sending signals to autovacuum workers.","title":"Add predefined role pg_signal_autovacuum_worker","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["b3f0be788"],"commit_groups":[["b3f0be788"]],"commits":["b3f0be788"],"cves":[],"db_id":"746baa07cb5e517064dca7ea3454e3b0","html":"\u003cp\u003eAdd support for the \u003ca href=\"/docs/18/auth-oauth.html\" title=\"20.15. OAuth Authorization/Authentication\"\u003eOAuth authentication method\u003c/a\u003e (Jacob Champion, Daniel Gustafsson, Thomas Munro) \u003ca href=\"https://postgr.es/c/b3f0be788\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis adds an \u003ccode\u003eoauth\u003c/code\u003e authentication method to \u003ca href=\"/docs/18/auth-pg-hba-conf.html\" title=\"20.1. The pg_hba.conf File\"\u003e\u003ccode\u003epg_hba.conf\u003c/code\u003e\u003c/a\u003e, libpq OAuth options, a server variable \u003ca href=\"/docs/18/runtime-config-connection.html#GUC-OAUTH-VALIDATOR-LIBRARIES\"\u003eoauth_validator_libraries\u003c/a\u003e to load token validation libraries, and a configure flag \u003ca href=\"/docs/18/install-make.html#CONFIGURE-OPTION-WITH-LIBCURL\"\u003e\u003ccode\u003e--with-libcurl\u003c/code\u003e\u003c/a\u003e to add the required compile-time libraries.\u003c/p\u003e","id":"18.0-8937e04e6f598c9a","identity_text":"Add support for the OAuth authentication method (Jacob Champion, Daniel Gustafsson, Thomas Munro) This adds an oauth authentication method to pg_hba.conf, libpq OAuth options, a server variable guc-oauth-validator-libraries to load token validation libraries, and a configure flag --with-libcurl to add the required compile-time libraries.","part":"changes","patch_ids":["e84eb2fdc1830185f25750762e1cc528"],"related_changes":[],"relations":[],"section":"Server / Server Configuration","section_path":["Server","Server Configuration"],"source_commits":["b3f0be788"],"source_entry_id":"18.0/changes/052","source_hash":"1ac9338858fd8a7a47d62e75d679e10a0eb1bfabc9a52d1e7db8098aa7bd9e0d","source_url":"/docs/release/18.0/#RELEASE-18-SERVER-CONFIG","statement_hash":"07ddc49607980c97519f77163181f14568e19bbe0b1e0dc01b218b1f6a71074d","text":"Add support for the OAuth authentication method (Jacob Champion, Daniel Gustafsson, Thomas Munro) § This adds an oauth authentication method to pg_hba.conf, libpq OAuth options, a server variable oauth_validator_libraries to load token validation libraries, and a configure flag --with-libcurl to add the required compile-time libraries.","title":"Add support for the OAuth authentication method","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["45188c2ea"],"commit_groups":[["45188c2ea"]],"commits":["45188c2ea"],"cves":[],"db_id":"13b081fb2e1030e7c402c99be84d674e","html":"\u003cp\u003eAdd server variable \u003ca href=\"/docs/18/runtime-config-connection.html#GUC-SSL-TLS13-CIPHERS\"\u003essl_tls13_ciphers\u003c/a\u003e to allow specification of multiple colon-separated TLSv1.3 cipher suites (Erica Zhang, Daniel Gustafsson) \u003ca href=\"https://postgr.es/c/45188c2ea\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-c129dc9baebd36d0","identity_text":"Add server variable guc-ssl-tls13-ciphers to allow specification of multiple colon-separated TLSv1.3 cipher suites (Erica Zhang, Daniel Gustafsson)","part":"changes","patch_ids":["b918cd02542986f670ea5e4ccce7bed8"],"related_changes":[],"relations":[],"section":"Server / Server Configuration","section_path":["Server","Server Configuration"],"source_commits":["45188c2ea"],"source_entry_id":"18.0/changes/053","source_hash":"5d256d99caaf5046100077cd472e922ae375d82b0f5b45bcfbac3a79833692b5","source_url":"/docs/release/18.0/#RELEASE-18-SERVER-CONFIG","statement_hash":"ffe4b310bcfc2b812bd9ca43729c6e6988676e615fa96ac501930ef3cd998db9","text":"Add server variable ssl_tls13_ciphers to allow specification of multiple colon-separated TLSv1.3 cipher suites (Erica Zhang, Daniel Gustafsson) §","title":"Add server variable ssl_tls13_ciphers to allow specification of multiple colon-separated TLSv1.3 cipher suites","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["daa02c6bd"],"commit_groups":[["daa02c6bd"]],"commits":["daa02c6bd"],"cves":[],"db_id":"0ff6b951577e789ccfcf50c5fdd16250","html":"\u003cp\u003eChange server variable \u003ca href=\"/docs/18/runtime-config-connection.html#GUC-SSL-GROUPS\"\u003essl_groups\u003c/a\u003e's default to include elliptic curve X25519 (Daniel Gustafsson, Jacob Champion) \u003ca href=\"https://postgr.es/c/daa02c6bd\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-7ae83796934b368a","identity_text":"Change server variable guc-ssl-groups 's default to include elliptic curve X25519 (Daniel Gustafsson, Jacob Champion)","part":"changes","patch_ids":["b6419e2ab5092340bdb51279a882c575"],"related_changes":[],"relations":[],"section":"Server / Server Configuration","section_path":["Server","Server Configuration"],"source_commits":["daa02c6bd"],"source_entry_id":"18.0/changes/054","source_hash":"769ef4c7a0e583d2f4cb847ab408143dd1d5d440e558c0b751debd0c43265451","source_url":"/docs/release/18.0/#RELEASE-18-SERVER-CONFIG","statement_hash":"79f1b0ec5dbbc9c41cfae0c653c6b8af2978a2d458009ec866463efb3c895406","text":"Change server variable ssl_groups's default to include elliptic curve X25519 (Daniel Gustafsson, Jacob Champion) §","title":"Change server variable ssl_groups's default to include elliptic curve X25519","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["3d1ef3a15"],"commit_groups":[["3d1ef3a15"]],"commits":["3d1ef3a15"],"cves":[],"db_id":"96a81164afdac0bf4ed0486ab950b9cc","html":"\u003cp\u003eRename server variable \u003ccode\u003essl_ecdh_curve\u003c/code\u003e to \u003ca href=\"/docs/18/runtime-config-connection.html#GUC-SSL-GROUPS\"\u003essl_groups\u003c/a\u003e and allow multiple colon-separated \u003cacronym\u003eECDH\u003c/acronym\u003e curves to be specified (Erica Zhang, Daniel Gustafsson) \u003ca href=\"https://postgr.es/c/3d1ef3a15\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe previous name still works.\u003c/p\u003e","id":"18.0-ec11a3f47cab5302","identity_text":"Rename server variable ssl_ecdh_curve to guc-ssl-groups and allow multiple colon-separated ECDH curves to be specified (Erica Zhang, Daniel Gustafsson) The previous name still works.","part":"changes","patch_ids":["c2561d4875ae281fdaea78d9e93eaee2"],"related_changes":[],"relations":[],"section":"Server / Server Configuration","section_path":["Server","Server Configuration"],"source_commits":["3d1ef3a15"],"source_entry_id":"18.0/changes/055","source_hash":"69fc229fb451ba3569f10661789b08fd931063d5102c111408c2c761550da092","source_url":"/docs/release/18.0/#RELEASE-18-SERVER-CONFIG","statement_hash":"af282a32e71f1303e38dd9f838dce742a3ea5e5033c66e5a334acc730ab67445","text":"Rename server variable ssl_ecdh_curve to ssl_groups and allow multiple colon-separated ECDH curves to be specified (Erica Zhang, Daniel Gustafsson) § The previous name still works.","title":"Rename server variable ssl_ecdh_curve to ssl_groups and allow multiple colon-separated ECDH curves to be specified","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["9d9b9d46f","a460251f0"],"commit_groups":[["9d9b9d46f"],["a460251f0"]],"commits":["9d9b9d46f","a460251f0"],"cves":[],"db_id":"d4bdcc752134e88e3b6f69045f91e32f","html":"\u003cp\u003eMake \u003ca href=\"/docs/18/functions-admin.html#FUNCTIONS-ADMIN-SIGNAL-TABLE\" title=\"Table 9.96. Server Signaling Functions\"\u003ecancel request keys\u003c/a\u003e 256 bits (Heikki Linnakangas, Jelte Fennema-Nio) \u003ca href=\"https://postgr.es/c/a460251f0\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/9d9b9d46f\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is only possible when the server and client support wire protocol version 3.2, introduced in this release.\u003c/p\u003e","id":"18.0-fc222bd600eb20c7","identity_text":"Make cancel request keys 256 bits (Heikki Linnakangas, Jelte Fennema-Nio) This is only possible when the server and client support wire protocol version 3.2, introduced in this release.","part":"changes","patch_ids":["3374f7d4348f979a16fb3f835b1434dd","78aeb882063c4d9c0113cb769f6f63c8"],"related_changes":[],"relations":[],"section":"Server / Server Configuration","section_path":["Server","Server Configuration"],"source_commits":["9d9b9d46f","a460251f0"],"source_entry_id":"18.0/changes/056","source_hash":"4da7c6464ec24190e054671959a89c1342b41fd9c2df30a579e2cb4c8e608823","source_url":"/docs/release/18.0/#RELEASE-18-SERVER-CONFIG","statement_hash":"bf970fd6a3a870ec104cf3173699ac7821ccb4e686bb18b2d9050cfee203c953","text":"Make cancel request keys 256 bits (Heikki Linnakangas, Jelte Fennema-Nio) § § This is only possible when the server and client support wire protocol version 3.2, introduced in this release.","title":"Make cancel request keys 256 bits","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["c758119e5"],"commit_groups":[["c758119e5"]],"commits":["c758119e5"],"cves":[],"db_id":"14193c2c6216dac54ee9f03d74597315","html":"\u003cp\u003eAdd server variable \u003ca href=\"/docs/18/runtime-config-vacuum.html#GUC-AUTOVACUUM-WORKER-SLOTS\"\u003eautovacuum_worker_slots\u003c/a\u003e to specify the maximum number of background workers (Nathan Bossart) \u003ca href=\"https://postgr.es/c/c758119e5\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eWith this variable set, \u003ca href=\"/docs/18/runtime-config-vacuum.html#GUC-AUTOVACUUM-MAX-WORKERS\"\u003eautovacuum_max_workers\u003c/a\u003e can be adjusted at runtime up to this maximum without a server restart.\u003c/p\u003e","id":"18.0-fad3071db20b5849","identity_text":"Add server variable guc-autovacuum-worker-slots to specify the maximum number of background workers (Nathan Bossart) With this variable set, guc-autovacuum-max-workers can be adjusted at runtime up to this maximum without a server restart.","part":"changes","patch_ids":["17efa2578b6fdfca54d1895a47b5d85c"],"related_changes":[],"relations":[],"section":"Server / Server Configuration","section_path":["Server","Server Configuration"],"source_commits":["c758119e5"],"source_entry_id":"18.0/changes/057","source_hash":"cccf9f941c4560c33011e635dcab0b9c28ae26749ffd1608f7169c4ecf499acc","source_url":"/docs/release/18.0/#RELEASE-18-SERVER-CONFIG","statement_hash":"2340cf9dd0c8914c3ae78fcca1d6cb8a3eec267275fe98352062b37d256a1302","text":"Add server variable autovacuum_worker_slots to specify the maximum number of background workers (Nathan Bossart) § With this variable set, autovacuum_max_workers can be adjusted at runtime up to this maximum without a server restart.","title":"Add server variable autovacuum_worker_slots to specify the maximum number of background workers","variants":[],"version":"18.0"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["306dc520b"],"commit_groups":[["306dc520b"]],"commits":["306dc520b"],"cves":[],"db_id":"c6c8d0da14fc739954f67e4c3e8e297c","html":"\u003cp\u003eAllow specification of the fixed number of dead tuples that will trigger an \u003ca href=\"/docs/18/routine-vacuuming.html#AUTOVACUUM\" title=\"24.1.6. The Autovacuum Daemon\"\u003eautovacuum\u003c/a\u003e (Nathan Bossart, Frédéric Yhuel) \u003ca href=\"https://postgr.es/c/306dc520b\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe server variable is \u003ca href=\"/docs/18/runtime-config-vacuum.html#GUC-AUTOVACUUM-VACUUM-MAX-THRESHOLD\"\u003eautovacuum_vacuum_max_threshold\u003c/a\u003e. Percentages are still used for triggering.\u003c/p\u003e","id":"18.0-cc3cc0af71ac8fcd","identity_text":"Allow specification of the fixed number of dead tuples that will trigger an autovacuum (Nathan Bossart, Frédéric Yhuel) The server variable is guc-autovacuum-vacuum-max-threshold . Percentages are still used for triggering.","part":"changes","patch_ids":["fede0a2ed06d94a30aac6de8675efbce"],"related_changes":[],"relations":[],"section":"Server / Server Configuration","section_path":["Server","Server Configuration"],"source_commits":["306dc520b"],"source_entry_id":"18.0/changes/058","source_hash":"fd553683edfb9d3b450f0a00d5e58d81232bb84ff144ad688ad048e97b11922e","source_url":"/docs/release/18.0/#RELEASE-18-SERVER-CONFIG","statement_hash":"f26aed72e786336ffb0181c576796c1b0d66b6c0c79fa7ab8337a9deb9a04a70","text":"Allow specification of the fixed number of dead tuples that will trigger an autovacuum (Nathan Bossart, Frédéric Yhuel) § The server variable is autovacuum_vacuum_max_threshold. Percentages are still used for triggering.","title":"Allow specification of the fixed number of dead tuples that will trigger an autovacuum","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["adb5f85fa"],"commit_groups":[["adb5f85fa"]],"commits":["adb5f85fa"],"cves":[],"db_id":"7d0f8a8401a0235fee5c42443323fd9f","html":"\u003cp\u003eChange server variable \u003ca href=\"/docs/18/runtime-config-resource.html#GUC-MAX-FILES-PER-PROCESS\"\u003emax_files_per_process\u003c/a\u003e to limit only files opened by a backend (Andres Freund) \u003ca href=\"https://postgr.es/c/adb5f85fa\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePreviously files opened by the postmaster were also counted toward this limit.\u003c/p\u003e","id":"18.0-88c8af4f4659a505","identity_text":"Change server variable guc-max-files-per-process to limit only files opened by a backend (Andres Freund) Previously files opened by the postmaster were also counted toward this limit.","part":"changes","patch_ids":["1253eb7b68a386abd794c882137adc02"],"related_changes":[],"relations":[],"section":"Server / Server Configuration","section_path":["Server","Server Configuration"],"source_commits":["adb5f85fa"],"source_entry_id":"18.0/changes/059","source_hash":"2618bfe12d00c39268c401694e59d9fad97443ba987c22b6d62e307da9068d9a","source_url":"/docs/release/18.0/#RELEASE-18-SERVER-CONFIG","statement_hash":"04e1a6687e91598505d1cd8239184c483171e03aa143374ed943a3e8b71c817c","text":"Change server variable max_files_per_process to limit only files opened by a backend (Andres Freund) § Previously files opened by the postmaster were also counted toward this limit.","title":"Change server variable max_files_per_process to limit only files opened by a backend","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["0dcaea569"],"commit_groups":[["0dcaea569"]],"commits":["0dcaea569"],"cves":[],"db_id":"baa925cc966c3797d6c1baeb8600b3af","html":"\u003cp\u003eAdd server variable \u003ca href=\"/docs/18/runtime-config-preset.html#GUC-NUM-OS-SEMAPHORES\"\u003enum_os_semaphores\u003c/a\u003e to report the required number of semaphores (Nathan Bossart) \u003ca href=\"https://postgr.es/c/0dcaea569\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is useful for operating system configuration.\u003c/p\u003e","id":"18.0-a70925addf13174f","identity_text":"Add server variable guc-num-os-semaphores to report the required number of semaphores (Nathan Bossart) This is useful for operating system configuration.","part":"changes","patch_ids":["7cab2bba487b8dfdc88b894d86ebcb31"],"related_changes":[],"relations":[],"section":"Server / Server Configuration","section_path":["Server","Server Configuration"],"source_commits":["0dcaea569"],"source_entry_id":"18.0/changes/060","source_hash":"9ab5511113bd82e70e3a03fc12538f6345af41f77c718778b40bf3d3a03203b6","source_url":"/docs/release/18.0/#RELEASE-18-SERVER-CONFIG","statement_hash":"db627bdf62b6a351d882ccec445c9221ec8e4d930aed5bf5e6b0b5b611bd8094","text":"Add server variable num_os_semaphores to report the required number of semaphores (Nathan Bossart) § This is useful for operating system configuration.","title":"Add server variable num_os_semaphores to report the required number of semaphores","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["4f7f7b037","81eaaa2c4"],"commit_groups":[["4f7f7b037"],["81eaaa2c4"]],"commits":["4f7f7b037","81eaaa2c4"],"cves":[],"db_id":"9a0ac630df36e673c00b61131cd0c2ff","html":"\u003cp\u003eAdd server variable \u003ca href=\"/docs/18/runtime-config-client.html#GUC-EXTENSION-CONTROL-PATH\"\u003eextension_control_path\u003c/a\u003e to specify the location of extension control files (Peter Eisentraut, Matheus Alcantara) \u003ca href=\"https://postgr.es/c/4f7f7b037\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/81eaaa2c4\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-fcaec73419edafbc","identity_text":"Add server variable guc-extension-control-path to specify the location of extension control files (Peter Eisentraut, Matheus Alcantara)","part":"changes","patch_ids":["2c992ea1a18c7e56b1999e13915ad2f8","95178da37b740ae32403368a9d5de091"],"related_changes":[],"relations":[],"section":"Server / Server Configuration","section_path":["Server","Server Configuration"],"source_commits":["4f7f7b037","81eaaa2c4"],"source_entry_id":"18.0/changes/061","source_hash":"9d62b8c0663f70e4f69542ec94abb0e3f367bb880d1661fa4b5ee26a52495548","source_url":"/docs/release/18.0/#RELEASE-18-SERVER-CONFIG","statement_hash":"b2d063e72b9d991ddf32656536cdf6aa960609b5293a9f7685124d9018ed0d46","text":"Add server variable extension_control_path to specify the location of extension control files (Peter Eisentraut, Matheus Alcantara) § §","title":"Add server variable extension_control_path to specify the location of extension control files","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["ac0e33136"],"commit_groups":[["ac0e33136"]],"commits":["ac0e33136"],"cves":[],"db_id":"7e52ed73d316bf78778f528fedb05f84","html":"\u003cp\u003eAllow inactive replication slots to be automatically invalidated using server variable \u003ca href=\"/docs/18/runtime-config-replication.html#GUC-IDLE-REPLICATION-SLOT-TIMEOUT\"\u003eidle_replication_slot_timeout\u003c/a\u003e (Nisha Moond, Bharath Rupireddy) \u003ca href=\"https://postgr.es/c/ac0e33136\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-d6cdb50cb80abdda","identity_text":"Allow inactive replication slots to be automatically invalidated using server variable guc-idle-replication-slot-timeout (Nisha Moond, Bharath Rupireddy)","part":"changes","patch_ids":["df8d31e4efb6cb139d5c669e2215050c"],"related_changes":[],"relations":[],"section":"Server / Streaming Replication and Recovery","section_path":["Server","Streaming Replication and Recovery"],"source_commits":["ac0e33136"],"source_entry_id":"18.0/changes/062","source_hash":"8c442254dde2045ae1b1e87460c9e70a650a5b8afddfac774dc1463a967d81ba","source_url":"/docs/release/18.0/#RELEASE-18-REPLICATION","statement_hash":"eb9a1e5c89e5b4fa71a37fedc208ddb8c2f0f95fbc1eec06821cbc772f3bd8fc","text":"Allow inactive replication slots to be automatically invalidated using server variable idle_replication_slot_timeout (Nisha Moond, Bharath Rupireddy) §","title":"Allow inactive replication slots to be automatically invalidated using server variable idle_replication_slot_timeout","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["04ff636cb"],"commit_groups":[["04ff636cb"]],"commits":["04ff636cb"],"cves":[],"db_id":"1428b3f7f6cc1a4506850622a40c3ffb","html":"\u003cp\u003eAdd server variable \u003ca href=\"/docs/18/runtime-config-replication.html#GUC-MAX-ACTIVE-REPLICATION-ORIGINS\"\u003emax_active_replication_origins\u003c/a\u003e to control the maximum active replication origins (Euler Taveira) \u003ca href=\"https://postgr.es/c/04ff636cb\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis was previously controlled by \u003ca href=\"/docs/18/runtime-config-replication.html#GUC-MAX-REPLICATION-SLOTS\"\u003emax_replication_slots\u003c/a\u003e, but this new setting allows a higher origin count in cases where fewer slots are required.\u003c/p\u003e","id":"18.0-03713c460c2a7d56","identity_text":"Add server variable guc-max-active-replication-origins to control the maximum active replication origins (Euler Taveira) This was previously controlled by guc-max-replication-slots , but this new setting allows a higher origin count in cases where fewer slots are required.","part":"changes","patch_ids":["a8c08a420a79bd1a161ea23d9bef6d71"],"related_changes":[],"relations":[],"section":"Server / Streaming Replication and Recovery","section_path":["Server","Streaming Replication and Recovery"],"source_commits":["04ff636cb"],"source_entry_id":"18.0/changes/063","source_hash":"33b1bea544f15476df511f7f493e700d5039ed734c0053ce03bf246913999aca","source_url":"/docs/release/18.0/#RELEASE-18-REPLICATION","statement_hash":"9e85b8d9968595a466cfb230295bcf24c446ed069e908115b73bf70ddbaf2392","text":"Add server variable max_active_replication_origins to control the maximum active replication origins (Euler Taveira) § This was previously controlled by max_replication_slots, but this new setting allows a higher origin count in cases where fewer slots are required.","title":"Add server variable max_active_replication_origins to control the maximum active replication origins","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["6252b1eaf","7054186c4","745217a05","87ce27de6"],"commit_groups":[["6252b1eaf"],["7054186c4"],["745217a05"],["87ce27de6"]],"commits":["6252b1eaf","7054186c4","745217a05","87ce27de6"],"cves":[],"db_id":"5202261d9ce471fa7ab14e9e38ae61ef","html":"\u003cp\u003eAllow the values of \u003ca href=\"/docs/18/sql-createtable.html#SQL-CREATETABLE-PARMS-GENERATED-STORED\"\u003egenerated columns\u003c/a\u003e to be logically replicated (Shubham Khanna, Vignesh C, Zhijie Hou, Shlok Kyal, Peter Smith) \u003ca href=\"https://postgr.es/c/745217a05\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/7054186c4\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/87ce27de6\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/6252b1eaf\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eIf the publication specifies a column list, all specified columns, generated and non-generated, are published. Without a specified column list, publication option \u003ccode\u003epublish_generated_columns\u003c/code\u003e controls whether generated columns are published. Previously generated columns were not replicated and the subscriber had to compute the values if possible; this is particularly useful for non-\u003cspan\u003ePostgreSQL\u003c/span\u003e subscribers which lack such a capability.\u003c/p\u003e","id":"18.0-b3be55f006e9da56","identity_text":"Allow the values of generated columns to be logically replicated (Shubham Khanna, Vignesh C, Zhijie Hou, Shlok Kyal, Peter Smith) If the publication specifies a column list, all specified columns, generated and non-generated, are published. Without a specified column list, publication option publish_generated_columns controls whether generated columns are published. Previously generated columns were not replicated and the subscriber had to compute the values if possible; this is particularly useful for non-PostgreSQL subscribers which lack such a capability.","part":"changes","patch_ids":["1665b39bcf49aa722b1893f0f6a01425","3341f4a55afcad51ffb341807df994d9","369fa64a83003bb9b411f50bb7db1dc9","4288fdb022ae4713ce4aa5fa5fa0f5cc"],"related_changes":[],"relations":[],"section":"Server / Logical Replication","section_path":["Server","Logical Replication"],"source_commits":["6252b1eaf","7054186c4","745217a05","87ce27de6"],"source_entry_id":"18.0/changes/064","source_hash":"8ce5cf78247c4224e21a3859bb19dbd3ae248d206b36330a42cd21f09eb98501","source_url":"/docs/release/18.0/#RELEASE-18-LOGICAL","statement_hash":"083520dac02028f1cb8e9374c5f6fee5c51e6f31ad5594e2b5d7f6386a3b9577","text":"Allow the values of generated columns to be logically replicated (Shubham Khanna, Vignesh C, Zhijie Hou, Shlok Kyal, Peter Smith) § § § § If the publication specifies a column list, all specified columns, generated and non-generated, are published. Without a specified column list, publication option publish_generated_columns controls whether generated columns are published. Previously generated columns were not replicated and the subscriber had to compute the values if possible; this is particularly useful for non-PostgreSQL subscribers which lack such a capability.","title":"Allow the values of generated columns to be logically replicated","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["1bf1140be"],"commit_groups":[["1bf1140be"]],"commits":["1bf1140be"],"cves":[],"db_id":"64ac8d883b9496b763afc3ba0c0bac52","html":"\u003cp\u003eChange the default \u003ca href=\"/docs/18/sql-createsubscription.html\" title=\"CREATE SUBSCRIPTION\"\u003e\u003cspan\u003eCREATE SUBSCRIPTION\u003c/span\u003e\u003c/a\u003e streaming option from \u003ccode\u003eoff\u003c/code\u003e to \u003ccode\u003eparallel\u003c/code\u003e (Vignesh C) \u003ca href=\"https://postgr.es/c/1bf1140be\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-2d4096e3c7abe9a2","identity_text":"Change the default sql-createsubscription streaming option from off to parallel (Vignesh C)","part":"changes","patch_ids":["6ef9a9f39489f250a02f1462b636b45f"],"related_changes":[],"relations":[],"section":"Server / Logical Replication","section_path":["Server","Logical Replication"],"source_commits":["1bf1140be"],"source_entry_id":"18.0/changes/065","source_hash":"dce9ffa74056678f5973ff428b9f15c4f65d9403797d8b7feb364f5e78f6b6b7","source_url":"/docs/release/18.0/#RELEASE-18-LOGICAL","statement_hash":"ccdb8be0260f594a383cc3edfe4b5c3fb3df37d5354d857e476778efb79b3ff4","text":"Change the default CREATE SUBSCRIPTION streaming option from off to parallel (Vignesh C) §","title":"Change the default CREATE SUBSCRIPTION streaming option from off to parallel","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["1462aad2e","4868c96bc"],"commit_groups":[["1462aad2e"],["4868c96bc"]],"commits":["1462aad2e","4868c96bc"],"cves":[],"db_id":"41cd5554ab5a99df850ddc649a630bf5","html":"\u003cp\u003eAllow \u003ca href=\"/docs/18/sql-altersubscription.html\" title=\"ALTER SUBSCRIPTION\"\u003e\u003cspan\u003eALTER SUBSCRIPTION\u003c/span\u003e\u003c/a\u003e to change the replication slot's two-phase commit behavior (Hayato Kuroda, Ajin Cherian, Amit Kapila, Zhijie Hou) \u003ca href=\"https://postgr.es/c/1462aad2e\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/4868c96bc\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-a97cc604ed380ce6","identity_text":"Allow sql-altersubscription to change the replication slot's two-phase commit behavior (Hayato Kuroda, Ajin Cherian, Amit Kapila, Zhijie Hou)","part":"changes","patch_ids":["15c1439cde9cf963e340507c56e6bd57","fd8060f9266b72de63d063d80a6bb2f9"],"related_changes":[],"relations":[],"section":"Server / Logical Replication","section_path":["Server","Logical Replication"],"source_commits":["1462aad2e","4868c96bc"],"source_entry_id":"18.0/changes/066","source_hash":"b96743f044a02e2201e5e678b547c8fdb56efd310343f8b3e4919fa6c862dfc7","source_url":"/docs/release/18.0/#RELEASE-18-LOGICAL","statement_hash":"4c14605560e017cf4d89bb8a33a0ab993f4a9ff353648fde85d7e88cde571530","text":"Allow ALTER SUBSCRIPTION to change the replication slot's two-phase commit behavior (Hayato Kuroda, Ajin Cherian, Amit Kapila, Zhijie Hou) § §","title":"Allow ALTER SUBSCRIPTION to change the replication slot's two-phase commit behavior","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["640178c92","6c2b5edec","73eba5004","9758174e2","edcb71258"],"commit_groups":[["640178c92"],["6c2b5edec"],["73eba5004"],["9758174e2"],["edcb71258"]],"commits":["640178c92","6c2b5edec","73eba5004","9758174e2","edcb71258"],"cves":[],"db_id":"d501fbaa05f2f82279ea37f34a051e90","html":"\u003cp\u003eLog \u003ca href=\"/docs/18/hot-standby.html#HOT-STANDBY-CONFLICT\" title=\"26.4.2. Handling Query Conflicts\"\u003econflicts\u003c/a\u003e while applying logical replication changes (Zhijie Hou, Nisha Moond) \u003ca href=\"https://postgr.es/c/9758174e2\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/edcb71258\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/640178c92\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/6c2b5edec\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/73eba5004\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eAlso report in new columns of \u003ca href=\"/docs/18/monitoring-stats.html#MONITORING-PG-STAT-SUBSCRIPTION-STATS\" title=\"27.2.9. pg_stat_subscription_stats\"\u003e\u003ccode\u003epg_stat_subscription_stats\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e","id":"18.0-a8d78b040297e9b0","identity_text":"Log conflicts while applying logical replication changes (Zhijie Hou, Nisha Moond) Also report in new columns of pg_stat_subscription_stats.","part":"changes","patch_ids":["51def9eea7743271af2095d95b545a4f","8b6edece41c91a3f70d5596159ddbe32","ae3bbcf20f2ea20c2688908c03c2959a","ae68c8345354c13eb606659698b10d59","f0ec97314be2a61418e5a1c0f3506967"],"related_changes":[],"relations":[],"section":"Server / Logical Replication","section_path":["Server","Logical Replication"],"source_commits":["640178c92","6c2b5edec","73eba5004","9758174e2","edcb71258"],"source_entry_id":"18.0/changes/067","source_hash":"05b6c5eed4fe0a503528ebf6e93550346f53902f7896fdfd02fa0f490a545a5d","source_url":"/docs/release/18.0/#RELEASE-18-LOGICAL","statement_hash":"a122cf64cd9a507a10cc7e4d8d75e98e4d0911707c1e708541f68fcd20a195cf","text":"Log conflicts while applying logical replication changes (Zhijie Hou, Nisha Moond) § § § § § Also report in new columns of pg_stat_subscription_stats.","title":"Log conflicts while applying logical replication changes","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["1e4351af3","83ea6c540","cdc168ad4"],"commit_groups":[["1e4351af3"],["83ea6c540"],["cdc168ad4"]],"commits":["1e4351af3","83ea6c540","cdc168ad4"],"cves":[],"db_id":"e55bde9210ccbba653a3ff687ce8c8d5","html":"\u003cp\u003eAllow \u003ca href=\"/docs/18/sql-createtable.html#SQL-CREATETABLE-PARMS-GENERATED-STORED\"\u003egenerated columns\u003c/a\u003e to be virtual, and make them the default (Peter Eisentraut, Jian He, Richard Guo, Dean Rasheed) \u003ca href=\"https://postgr.es/c/83ea6c540\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/cdc168ad4\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/1e4351af3\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eVirtual generated columns generate their values when the columns are read, not written. The write behavior can still be specified via the \u003ccode\u003eSTORED\u003c/code\u003e option.\u003c/p\u003e","id":"18.0-d75b3348cb3c29c1","identity_text":"Allow generated columns to be virtual, and make them the default (Peter Eisentraut, Jian He, Richard Guo, Dean Rasheed) Virtual generated columns generate their values when the columns are read, not written. The write behavior can still be specified via the STORED option.","part":"changes","patch_ids":["3e371ba8f3c63409d6e3c656c1bdb71c","447c816d3adc612f5ef8fd3d4f63cc04","dc34ef60f4a74f75244fff70b71d30ca"],"related_changes":[],"relations":[],"section":"Utility Commands","section_path":["Utility Commands"],"source_commits":["1e4351af3","83ea6c540","cdc168ad4"],"source_entry_id":"18.0/changes/068","source_hash":"8b9bb147252ad7e35c8f655d35d8c3a7e914db7df27c4bd4a357130d618b67b2","source_url":"/docs/release/18.0/#RELEASE-18-UTILITY","statement_hash":"5dc1a0db02d845a39dfa141f18f21f435065540c7745af4f23009c79c78be2b5","text":"Allow generated columns to be virtual, and make them the default (Peter Eisentraut, Jian He, Richard Guo, Dean Rasheed) § § § Virtual generated columns generate their values when the columns are read, not written. The write behavior can still be specified via the STORED option.","title":"Allow generated columns to be virtual, and make them the default","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["80feb727c"],"commit_groups":[["80feb727c"]],"commits":["80feb727c"],"cves":[],"db_id":"a6ab1b647947ca727232553f3a8dc197","html":"\u003cp\u003eAdd \u003ccode\u003eOLD\u003c/code\u003e/\u003ccode\u003eNEW\u003c/code\u003e support to \u003ca href=\"/docs/18/dml-returning.html\" title=\"6.4. Returning Data from Modified Rows\"\u003e\u003ccode\u003eRETURNING\u003c/code\u003e\u003c/a\u003e in \u003cacronym\u003eDML\u003c/acronym\u003e queries (Dean Rasheed) \u003ca href=\"https://postgr.es/c/80feb727c\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePreviously \u003ccode\u003eRETURNING\u003c/code\u003e only returned new values for \u003ca href=\"/docs/18/sql-insert.html\" title=\"INSERT\"\u003e\u003cspan\u003eINSERT\u003c/span\u003e\u003c/a\u003e and \u003ca href=\"/docs/18/sql-update.html\" title=\"UPDATE\"\u003e\u003cspan\u003eUPDATE\u003c/span\u003e\u003c/a\u003e, and old values for \u003ca href=\"/docs/18/sql-delete.html\" title=\"DELETE\"\u003e\u003cspan\u003eDELETE\u003c/span\u003e\u003c/a\u003e; \u003ca href=\"/docs/18/sql-merge.html\" title=\"MERGE\"\u003e\u003cspan\u003eMERGE\u003c/span\u003e\u003c/a\u003e would return the appropriate value for the internal query executed. This new syntax allows the \u003ccode\u003eRETURNING\u003c/code\u003e list of \u003ccode\u003eINSERT\u003c/code\u003e/\u003ccode\u003eUPDATE\u003c/code\u003e/\u003ccode\u003eDELETE\u003c/code\u003e/\u003ccode\u003eMERGE\u003c/code\u003e to explicitly return old and new values by using the special aliases \u003ccode\u003eold\u003c/code\u003e and \u003ccode\u003enew\u003c/code\u003e. These aliases can be renamed to avoid identifier conflicts.\u003c/p\u003e","id":"18.0-1b582314268a1627","identity_text":"Add OLD/NEW support to RETURNING in DML queries (Dean Rasheed) Previously RETURNING only returned new values for sql-insert and sql-update , and old values for sql-delete ; sql-merge would return the appropriate value for the internal query executed. This new syntax allows the RETURNING list of INSERT/UPDATE/DELETE/MERGE to explicitly return old and new values by using the special aliases old and new. These aliases can be renamed to avoid identifier conflicts.","part":"changes","patch_ids":["4fca2a9efd37d56cb0881b858a6b90f0"],"related_changes":[],"relations":[],"section":"Utility Commands","section_path":["Utility Commands"],"source_commits":["80feb727c"],"source_entry_id":"18.0/changes/069","source_hash":"a8fc808c426e5a39fe1dc4198d1fc55913f32e15adb8f6ffac2992288794c5d6","source_url":"/docs/release/18.0/#RELEASE-18-UTILITY","statement_hash":"2d5bdf5703ba0215fc209242d19c9debd27beb536915449517e314371beaea1e","text":"Add OLD/NEW support to RETURNING in DML queries (Dean Rasheed) § Previously RETURNING only returned new values for INSERT and UPDATE, and old values for DELETE; MERGE would return the appropriate value for the internal query executed. This new syntax allows the RETURNING list of INSERT/UPDATE/DELETE/MERGE to explicitly return old and new values by using the special aliases old and new. These aliases can be renamed to avoid identifier conflicts.","title":"Add OLD/NEW support to RETURNING in DML queries","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["302cf1575"],"commit_groups":[["302cf1575"]],"commits":["302cf1575"],"cves":[],"db_id":"3c08bf99d8f77ab94596e695234e7097","html":"\u003cp\u003eAllow foreign tables to be created like existing local tables (Zhang Mingli) \u003ca href=\"https://postgr.es/c/302cf1575\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe syntax is \u003ca href=\"/docs/18/sql-createforeigntable.html\" title=\"CREATE FOREIGN TABLE\"\u003e\u003ccode\u003eCREATE FOREIGN TABLE ... LIKE\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e","id":"18.0-5507537d48f3fa62","identity_text":"Allow foreign tables to be created like existing local tables (Zhang Mingli) The syntax is CREATE FOREIGN TABLE ... LIKE.","part":"changes","patch_ids":["411e9a2745f01f897f4e54030814cdda"],"related_changes":[],"relations":[],"section":"Utility Commands","section_path":["Utility Commands"],"source_commits":["302cf1575"],"source_entry_id":"18.0/changes/070","source_hash":"62be8c19fa522f585e5dde472a79dd0aca848387218592415e6459267cb044c1","source_url":"/docs/release/18.0/#RELEASE-18-UTILITY","statement_hash":"650c85d540879cb0964e2e35ff37c707d3011899d487df426f0eca681a4e7ed5","text":"Allow foreign tables to be created like existing local tables (Zhang Mingli) § The syntax is CREATE FOREIGN TABLE ... LIKE.","title":"Allow foreign tables to be created like existing local tables","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["85b7efa1c"],"commit_groups":[["85b7efa1c"]],"commits":["85b7efa1c"],"cves":[],"db_id":"f3cb3e9cf2993fd77e182438fd54d155","html":"\u003cp\u003eAllow \u003ca href=\"/docs/18/functions-matching.html#FUNCTIONS-LIKE\" title=\"9.7.1. LIKE\"\u003e\u003ccode\u003eLIKE\u003c/code\u003e\u003c/a\u003e with \u003ca href=\"/docs/18/collation.html#COLLATION-NONDETERMINISTIC\" title=\"23.2.2.4. Nondeterministic Collations\"\u003enondeterministic collations\u003c/a\u003e (Peter Eisentraut) \u003ca href=\"https://postgr.es/c/85b7efa1c\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-fe1a855e89d5c6c8","identity_text":"Allow LIKE with nondeterministic collations (Peter Eisentraut)","part":"changes","patch_ids":["a5fc7223c5e3de4e0b0adde360f9a8ab"],"related_changes":[],"relations":[],"section":"Utility Commands","section_path":["Utility Commands"],"source_commits":["85b7efa1c"],"source_entry_id":"18.0/changes/071","source_hash":"f18c3846540e26051772bf9f2ce2e36b80aaee96301004d7a41dfd9d5e174e11","source_url":"/docs/release/18.0/#RELEASE-18-UTILITY","statement_hash":"df1ccd059c05458d62412178f18b09f9ac5b61de20fa13903026b25d6b0a281d","text":"Allow LIKE with nondeterministic collations (Peter Eisentraut) §","title":"Allow LIKE with nondeterministic collations","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["329304c90"],"commit_groups":[["329304c90"]],"commits":["329304c90"],"cves":[],"db_id":"1633612e398b9d62fc3745ae04ffbdcb","html":"\u003cp\u003eAllow text position search functions with nondeterministic collations (Peter Eisentraut) \u003ca href=\"https://postgr.es/c/329304c90\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThese used to generate an error.\u003c/p\u003e","id":"18.0-547a5b7139bf17c9","identity_text":"Allow text position search functions with nondeterministic collations (Peter Eisentraut) These used to generate an error.","part":"changes","patch_ids":["43d52072e1fb7ccdaab204775ce5218b"],"related_changes":[],"relations":[],"section":"Utility Commands","section_path":["Utility Commands"],"source_commits":["329304c90"],"source_entry_id":"18.0/changes/072","source_hash":"44de95f0bc4bf8dedce0af6fad80799804648813e2b8d379595f9119068daf23","source_url":"/docs/release/18.0/#RELEASE-18-UTILITY","statement_hash":"819c561a7502a24a171a66abb4e6b6d3543683ac066ea66ccff53a0fce4befea","text":"Allow text position search functions with nondeterministic collations (Peter Eisentraut) § These used to generate an error.","title":"Allow text position search functions with nondeterministic collations","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["d3d098316"],"commit_groups":[["d3d098316"]],"commits":["d3d098316"],"cves":[],"db_id":"30595e5c571a05cc7aee9889ba3a082f","html":"\u003cp\u003eAdd builtin collation provider \u003ca href=\"/docs/18/locale.html#LOCALE-PROVIDERS\" title=\"23.1.4. Locale Providers\"\u003e\u003ccode\u003ePG_UNICODE_FAST\u003c/code\u003e\u003c/a\u003e (Jeff Davis) \u003ca href=\"https://postgr.es/c/d3d098316\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis locale supports case mapping, but sorts in code point order, not natural language order.\u003c/p\u003e","id":"18.0-353986c77138379c","identity_text":"Add builtin collation provider PG_UNICODE_FAST (Jeff Davis) This locale supports case mapping, but sorts in code point order, not natural language order.","part":"changes","patch_ids":["04e3a10e98b76c4d3552450e42090216"],"related_changes":[],"relations":[],"section":"Utility Commands","section_path":["Utility Commands"],"source_commits":["d3d098316"],"source_entry_id":"18.0/changes/073","source_hash":"c67e8fc3c341be4b77ad03dc233abe7dcf8538d89e6aa0f6ccdf7ecd5fced9ee","source_url":"/docs/release/18.0/#RELEASE-18-UTILITY","statement_hash":"a2fd33890c8b434927b30005c495e84f2917c37b0d70177e7af7e169446cb0cc","text":"Add builtin collation provider PG_UNICODE_FAST (Jeff Davis) § This locale supports case mapping, but sorts in code point order, not natural language order.","title":"Add builtin collation provider PG_UNICODE_FAST","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["62ddf7ee9"],"commit_groups":[["62ddf7ee9"]],"commits":["62ddf7ee9"],"cves":[],"db_id":"94f45240a0275d0638838beebe665ece","html":"\u003cp\u003eAllow \u003ca href=\"/docs/18/sql-vacuum.html\" title=\"VACUUM\"\u003e\u003cspan\u003eVACUUM\u003c/span\u003e\u003c/a\u003e and \u003ca href=\"/docs/18/sql-analyze.html\" title=\"ANALYZE\"\u003e\u003cspan\u003eANALYZE\u003c/span\u003e\u003c/a\u003e to process partitioned tables without processing their children (Michael Harris) \u003ca href=\"https://postgr.es/c/62ddf7ee9\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is enabled with the new \u003ccode\u003eONLY\u003c/code\u003e option. This is useful since autovacuum does not process partitioned tables, just its children.\u003c/p\u003e","id":"18.0-f2283e0ad8b607f4","identity_text":"Allow sql-vacuum and sql-analyze to process partitioned tables without processing their children (Michael Harris) This is enabled with the new ONLY option. This is useful since autovacuum does not process partitioned tables, just its children.","part":"changes","patch_ids":["29279fd7549098871f985b99df60e141"],"related_changes":[{"db_id":"c27156e947f09ff22df4dce5613e8f4c","evidence":{"patch_ids":["29279fd7549098871f985b99df60e141"],"same_day":true},"kind":"related","label":"18.0","source_url":"/docs/release/18.0/#RELEASE-18-MIGRATION","title":"Change VACUUM and ANALYZE to process the inheritance children of a parent","url":"/docs/compare/?release=18.0#18.0-c84ca88e6e5518a9","version":"18.0"}],"relations":[{"evidence":{"patch_ids":["29279fd7549098871f985b99df60e141"],"same_day":true},"rule":2,"target":"c27156e947f09ff22df4dce5613e8f4c","type":"related"}],"section":"Utility Commands","section_path":["Utility Commands"],"source_commits":["62ddf7ee9"],"source_entry_id":"18.0/changes/074","source_hash":"05c7937bacc706d236a69b8c4fc589b591495e0020f6ccc2a065ca5215497451","source_url":"/docs/release/18.0/#RELEASE-18-UTILITY","statement_hash":"186081ff4a06c8a75bdfc573ce88d92f94310682d9ee69294323a9c8326c9e6f","text":"Allow VACUUM and ANALYZE to process partitioned tables without processing their children (Michael Harris) § This is enabled with the new ONLY option. This is useful since autovacuum does not process partitioned tables, just its children.","title":"Allow VACUUM and ANALYZE to process partitioned tables without processing their children","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["650ab8aaf","d32d14639","e839c8ecc"],"commit_groups":[["650ab8aaf"],["d32d14639"],["e839c8ecc"]],"commits":["650ab8aaf","d32d14639","e839c8ecc"],"cves":[],"db_id":"6e9858b57c68ea99d8150fd4b9910b9f","html":"\u003cp\u003eAdd functions to modify per-relation and per-column optimizer statistics (Corey Huinker) \u003ca href=\"https://postgr.es/c/e839c8ecc\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/d32d14639\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/650ab8aaf\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe functions are \u003ca href=\"/docs/18/functions-admin.html#FUNCTIONS-ADMIN-STATSMOD\" title=\"Table 9.105. Database Object Statistics Manipulation Functions\"\u003e\u003ccode\u003epg_restore_relation_stats()\u003c/code\u003e\u003c/a\u003e, \u003ccode\u003epg_restore_attribute_stats()\u003c/code\u003e, \u003ccode\u003epg_clear_relation_stats()\u003c/code\u003e, and \u003ccode\u003epg_clear_attribute_stats()\u003c/code\u003e.\u003c/p\u003e","id":"18.0-00fa56f14a769e0c","identity_text":"Add functions to modify per-relation and per-column optimizer statistics (Corey Huinker) The functions are pg_restore_relation_stats(), pg_restore_attribute_stats(), pg_clear_relation_stats(), and pg_clear_attribute_stats().","part":"changes","patch_ids":["4b5624c10aaa5b112428b0a7a7f438af","aec78a3156d287b4d2d70cdd28529fcb","eaa21c78bd0fb6108287d3368130333b"],"related_changes":[],"relations":[],"section":"Utility Commands","section_path":["Utility Commands"],"source_commits":["650ab8aaf","d32d14639","e839c8ecc"],"source_entry_id":"18.0/changes/075","source_hash":"674b01db84fb9420f02aad464846ffa2cb53e14b1d1fbbb110ec279daa7ad21d","source_url":"/docs/release/18.0/#RELEASE-18-UTILITY","statement_hash":"7eaa13e8bdea924978103d7640a4fbfb4bfa5d38f0861eb50b3ae7fb57e908a3","text":"Add functions to modify per-relation and per-column optimizer statistics (Corey Huinker) § § § The functions are pg_restore_relation_stats(), pg_restore_attribute_stats(), pg_clear_relation_stats(), and pg_clear_attribute_stats().","title":"Add functions to modify per-relation and per-column optimizer statistics","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["f78ca6f3e"],"commit_groups":[["f78ca6f3e"]],"commits":["f78ca6f3e"],"cves":[],"db_id":"b992193589e7617ce4982491eb56e0e8","html":"\u003cp\u003eAdd server variable \u003ca href=\"/docs/18/runtime-config-resource.html#GUC-FILE-COPY-METHOD\"\u003efile_copy_method\u003c/a\u003e to control the file copying method (Nazir Bilal Yavuz) \u003ca href=\"https://postgr.es/c/f78ca6f3e\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis controls whether \u003ca href=\"/docs/18/sql-createdatabase.html\" title=\"CREATE DATABASE\"\u003e\u003ccode\u003eCREATE DATABASE ... STRATEGY=FILE_COPY\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"/docs/18/sql-alterdatabase.html\" title=\"ALTER DATABASE\"\u003e\u003ccode\u003eALTER DATABASE ... SET TABLESPACE\u003c/code\u003e\u003c/a\u003e uses file copy or clone.\u003c/p\u003e","id":"18.0-615abfe2518a2e1a","identity_text":"Add server variable guc-file-copy-method to control the file copying method (Nazir Bilal Yavuz) This controls whether CREATE DATABASE ... STRATEGY=FILE_COPY and ALTER DATABASE ... SET TABLESPACE uses file copy or clone.","part":"changes","patch_ids":["439a7381d3a81157f6048dcf27ba49c2"],"related_changes":[],"relations":[],"section":"Utility Commands","section_path":["Utility Commands"],"source_commits":["f78ca6f3e"],"source_entry_id":"18.0/changes/076","source_hash":"55ffac7e2445fc4100affe783d64394b74d1f2e231c9ff84dec30c9a304d45d3","source_url":"/docs/release/18.0/#RELEASE-18-UTILITY","statement_hash":"d2befdc7cea14270674f2666fadea7539a2a737ce15620835aa47ff9bd481014","text":"Add server variable file_copy_method to control the file copying method (Nazir Bilal Yavuz) § This controls whether CREATE DATABASE ... STRATEGY=FILE_COPY and ALTER DATABASE ... SET TABLESPACE uses file copy or clone.","title":"Add server variable file_copy_method to control the file copying method","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["89f908a6d","fc0438b4e"],"commit_groups":[["89f908a6d"],["fc0438b4e"]],"commits":["89f908a6d","fc0438b4e"],"cves":[],"db_id":"656f1a2aaf525351eb1b8eece841fb72","html":"\u003cp\u003eAllow the specification of non-overlapping \u003ca href=\"/docs/18/sql-createtable.html#SQL-CREATETABLE-PARMS-PRIMARY-KEY\"\u003e\u003ccode\u003ePRIMARY KEY\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"/docs/18/sql-createtable.html#SQL-CREATETABLE-PARMS-UNIQUE\"\u003e\u003ccode\u003eUNIQUE\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"/docs/18/sql-createtable.html#SQL-CREATETABLE-PARMS-REFERENCES\"\u003eforeign key\u003c/a\u003e constraints (Paul A. Jungwirth) \u003ca href=\"https://postgr.es/c/fc0438b4e\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/89f908a6d\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is specified by \u003ccode\u003eWITHOUT OVERLAPS\u003c/code\u003e for \u003ccode\u003ePRIMARY KEY\u003c/code\u003e and \u003ccode\u003eUNIQUE\u003c/code\u003e, and by \u003ccode\u003ePERIOD\u003c/code\u003e for foreign keys, all applied to the last specified column.\u003c/p\u003e","id":"18.0-db27a9639261e139","identity_text":"Allow the specification of non-overlapping PRIMARY KEY, UNIQUE, and foreign key constraints (Paul A. Jungwirth) This is specified by WITHOUT OVERLAPS for PRIMARY KEY and UNIQUE, and by PERIOD for foreign keys, all applied to the last specified column.","part":"changes","patch_ids":["9d21a99c31ba9ddbc8896e95bc3a20c8","ed4443224512a7d7c9e0593dd5194bd1"],"related_changes":[],"relations":[],"section":"Utility Commands / Constraints","section_path":["Utility Commands","Constraints"],"source_commits":["89f908a6d","fc0438b4e"],"source_entry_id":"18.0/changes/077","source_hash":"cec7b6e045c9545e4f10003ed952bf9225e93776662baf6f97aab61666ffbe22","source_url":"/docs/release/18.0/#RELEASE-18-CONSTRAINTS","statement_hash":"f26c4016e11249e5cafa6f494580e249b2ffd42b0e460e4b6da81439d8a183c1","text":"Allow the specification of non-overlapping PRIMARY KEY, UNIQUE, and foreign key constraints (Paul A. Jungwirth) § § This is specified by WITHOUT OVERLAPS for PRIMARY KEY and UNIQUE, and by PERIOD for foreign keys, all applied to the last specified column.","title":"Allow the specification of non-overlapping PRIMARY KEY, UNIQUE, and foreign key constraints","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["ca87c415e","eec0040c4"],"commit_groups":[["ca87c415e"],["eec0040c4"]],"commits":["ca87c415e","eec0040c4"],"cves":[],"db_id":"156ef162ef6c54bcf8685caaa1f35f9c","html":"\u003cp\u003eAllow \u003ca href=\"/docs/18/sql-createtable.html#SQL-CREATETABLE-PARMS-CHECK\"\u003e\u003ccode\u003eCHECK\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"/docs/18/sql-createtable.html#SQL-CREATETABLE-PARMS-REFERENCES\"\u003eforeign key\u003c/a\u003e constraints to be specified as \u003ccode\u003eNOT ENFORCED\u003c/code\u003e (Amul Sul) \u003ca href=\"https://postgr.es/c/ca87c415e\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/eec0040c4\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis also adds column \u003ca href=\"/docs/18/catalog-pg-constraint.html\" title=\"52.13. pg_constraint\"\u003e\u003ccode\u003epg_constraint\u003c/code\u003e\u003c/a\u003e.\u003ccode\u003econenforced\u003c/code\u003e.\u003c/p\u003e","id":"18.0-0b43fb4e9ec35c53","identity_text":"Allow CHECK and foreign key constraints to be specified as NOT ENFORCED (Amul Sul) This also adds column pg_constraint.conenforced.","part":"changes","patch_ids":["28c11a4e5c4747a11fea5d43ea2536bb","897c774e88b353e9aaeb6731a2e16f1e"],"related_changes":[],"relations":[],"section":"Utility Commands / Constraints","section_path":["Utility Commands","Constraints"],"source_commits":["ca87c415e","eec0040c4"],"source_entry_id":"18.0/changes/078","source_hash":"47a74d174f45c84fadfefcd99f91a1c5b2a162611ee164e7a53164d9a4c34e1b","source_url":"/docs/release/18.0/#RELEASE-18-CONSTRAINTS","statement_hash":"9d9913a6743e4062207224366278ff21a4ddbc3afbab5cd896fbb02070710e2f","text":"Allow CHECK and foreign key constraints to be specified as NOT ENFORCED (Amul Sul) § § This also adds column pg_constraint.conenforced.","title":"Allow CHECK and foreign key constraints to be specified as NOT ENFORCED","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["9321d2fdf"],"commit_groups":[["9321d2fdf"]],"commits":["9321d2fdf"],"cves":[],"db_id":"68a1f7d62d756e8a62c81960b94b7516","html":"\u003cp\u003eRequire \u003ca href=\"/docs/18/sql-createtable.html#SQL-CREATETABLE-PARMS-REFERENCES\"\u003eprimary/foreign key\u003c/a\u003e relationships to use either deterministic collations or the the same nondeterministic collations (Peter Eisentraut) \u003ca href=\"https://postgr.es/c/9321d2fdf\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe restore of a \u003ca href=\"/docs/18/app-pgdump.html\" title=\"pg_dump\"\u003e\u003cspan\u003e\u003cspan\u003epg_dump\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e, also used by \u003ca href=\"/docs/18/pgupgrade.html\" title=\"pg_upgrade\"\u003e\u003cspan\u003e\u003cspan\u003epg_upgrade\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e, will fail if these requirements are not met; schema changes must be made for these upgrade methods to succeed.\u003c/p\u003e","id":"18.0-8f6d0fef92cbe901","identity_text":"Require primary/foreign key relationships to use either deterministic collations or the the same nondeterministic collations (Peter Eisentraut) The restore of a app-pgdump , also used by pgupgrade , will fail if these requirements are not met; schema changes must be made for these upgrade methods to succeed.","part":"changes","patch_ids":["0ce5a6d8a11a1381cec57c4513b145b6"],"related_changes":[],"relations":[],"section":"Utility Commands / Constraints","section_path":["Utility Commands","Constraints"],"source_commits":["9321d2fdf"],"source_entry_id":"18.0/changes/079","source_hash":"2b17eb3b34045fd66a066a2076d863f0fa350f40aa79c07d72d3a50fcdeff6f3","source_url":"/docs/release/18.0/#RELEASE-18-CONSTRAINTS","statement_hash":"2618c39bc6d6dedcb5838152a2f2578f929d0e51755b824342e7609b6456ce31","text":"Require primary/foreign key relationships to use either deterministic collations or the the same nondeterministic collations (Peter Eisentraut) § The restore of a pg_dump, also used by pg_upgrade, will fail if these requirements are not met; schema changes must be made for these upgrade methods to succeed.","title":"Require primary/foreign key relationships to use either deterministic collations or the the same nondeterministic collations","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["14e87ffa5","81ce602d4"],"commit_groups":[["14e87ffa5"],["81ce602d4"]],"commits":["14e87ffa5","81ce602d4"],"cves":[],"db_id":"8a4e6850401232dbd894c7a1988f9765","html":"\u003cp\u003eStore column \u003ca href=\"/docs/18/sql-createtable.html#SQL-CREATETABLE-PARMS-NOT-NULL\"\u003e\u003ccode\u003eNOT NULL\u003c/code\u003e\u003c/a\u003e specifications in \u003ca href=\"/docs/18/catalog-pg-constraint.html\" title=\"52.13. pg_constraint\"\u003e\u003ccode\u003epg_constraint\u003c/code\u003e\u003c/a\u003e (Álvaro Herrera, Bernd Helmle) \u003ca href=\"https://postgr.es/c/14e87ffa5\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/81ce602d4\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis allows names to be specified for \u003ccode\u003eNOT NULL\u003c/code\u003e constraint. This also adds \u003ccode\u003eNOT NULL\u003c/code\u003e constraints to foreign tables and \u003ccode\u003eNOT NULL\u003c/code\u003e inheritance control to local tables.\u003c/p\u003e","id":"18.0-0039523c093ff51f","identity_text":"Store column NOT NULL specifications in pg_constraint (Álvaro Herrera, Bernd Helmle) This allows names to be specified for NOT NULL constraint. This also adds NOT NULL constraints to foreign tables and NOT NULL inheritance control to local tables.","part":"changes","patch_ids":["505109f4ed771badde73056b108e1d2e","cbc655e13a914f142d5328fd2f764c89"],"related_changes":[],"relations":[],"section":"Utility Commands / Constraints","section_path":["Utility Commands","Constraints"],"source_commits":["14e87ffa5","81ce602d4"],"source_entry_id":"18.0/changes/080","source_hash":"8d664870fe4f56fdb40b1e71956c91806ece38272c325ee7364c831d08a4078a","source_url":"/docs/release/18.0/#RELEASE-18-CONSTRAINTS","statement_hash":"1c879bc0432ab853565526cf4359ab6808a77d0d5c13a35df594c1bd9ee148eb","text":"Store column NOT NULL specifications in pg_constraint (Álvaro Herrera, Bernd Helmle) § § This allows names to be specified for NOT NULL constraint. This also adds NOT NULL constraints to foreign tables and NOT NULL inheritance control to local tables.","title":"Store column NOT NULL specifications in pg_constraint","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["a379061a2"],"commit_groups":[["a379061a2"]],"commits":["a379061a2"],"cves":[],"db_id":"f12f345f0589967cff7f213f4c4bca92","html":"\u003cp\u003eAllow \u003ca href=\"/docs/18/sql-altertable.html\" title=\"ALTER TABLE\"\u003e\u003cspan\u003eALTER TABLE\u003c/span\u003e\u003c/a\u003e to set the \u003ccode\u003eNOT VALID\u003c/code\u003e attribute of \u003ccode\u003eNOT NULL\u003c/code\u003e constraints (Rushabh Lathia, Jian He) \u003ca href=\"https://postgr.es/c/a379061a2\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-71a718667ea9d30a","identity_text":"Allow sql-altertable to set the NOT VALID attribute of NOT NULL constraints (Rushabh Lathia, Jian He)","part":"changes","patch_ids":["a2748ca9c6b723c431540e39acdedc40"],"related_changes":[],"relations":[],"section":"Utility Commands / Constraints","section_path":["Utility Commands","Constraints"],"source_commits":["a379061a2"],"source_entry_id":"18.0/changes/081","source_hash":"7a63541c0cbbb94bf4c1f24b20eb8d40802864525d0a1f1d7c799ec1ef11ded5","source_url":"/docs/release/18.0/#RELEASE-18-CONSTRAINTS","statement_hash":"a8527c487edbe6f9a27b333d0cb36ae75e63f09eb9da9be99855bf147481647a","text":"Allow ALTER TABLE to set the NOT VALID attribute of NOT NULL constraints (Rushabh Lathia, Jian He) §","title":"Allow ALTER TABLE to set the NOT VALID attribute of NOT NULL constraints","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["4a02af8b1","f4e53e10b"],"commit_groups":[["4a02af8b1"],["f4e53e10b"]],"commits":["4a02af8b1","f4e53e10b"],"cves":[],"db_id":"adedc047dd49b7985ea964547e1bb243","html":"\u003cp\u003eAllow modification of the inheritability of \u003ccode\u003eNOT NULL\u003c/code\u003e constraints (Suraj Kharage, Álvaro Herrera) \u003ca href=\"https://postgr.es/c/f4e53e10b\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/4a02af8b1\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe syntax is \u003ca href=\"/docs/18/sql-altertable.html\" title=\"ALTER TABLE\"\u003e\u003ccode\u003eALTER TABLE ... ALTER CONSTRAINT ... [NO] INHERIT\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e","id":"18.0-fef76810fd909153","identity_text":"Allow modification of the inheritability of NOT NULL constraints (Suraj Kharage, Álvaro Herrera) The syntax is ALTER TABLE ... ALTER CONSTRAINT ... [NO] INHERIT.","part":"changes","patch_ids":["56786cb45efb3212c89bdb6ba9fb1df5","909cea2bfeaec8651ebceab1164a3e8c"],"related_changes":[],"relations":[],"section":"Utility Commands / Constraints","section_path":["Utility Commands","Constraints"],"source_commits":["4a02af8b1","f4e53e10b"],"source_entry_id":"18.0/changes/082","source_hash":"1c4f8756f1658494559bcf0a5e867d67b99c36db57dc1d6d871e2860cb1d23c9","source_url":"/docs/release/18.0/#RELEASE-18-CONSTRAINTS","statement_hash":"2389a86ed4c13eb10fce8148371ee5a6a016890e39b2a991d29d19326a10d62e","text":"Allow modification of the inheritability of NOT NULL constraints (Suraj Kharage, Álvaro Herrera) § § The syntax is ALTER TABLE ... ALTER CONSTRAINT ... [NO] INHERIT.","title":"Allow modification of the inheritability of NOT NULL constraints","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["b663b9436"],"commit_groups":[["b663b9436"]],"commits":["b663b9436"],"cves":[],"db_id":"00f0a79bb9b96d16af5a0d9ed236739d","html":"\u003cp\u003eAllow \u003ccode\u003eNOT VALID\u003c/code\u003e foreign key constraints on partitioned tables (Amul Sul) \u003ca href=\"https://postgr.es/c/b663b9436\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-1858e6bfd78676a8","identity_text":"Allow NOT VALID foreign key constraints on partitioned tables (Amul Sul)","part":"changes","patch_ids":["c2923b14543c6619fb5c4ab76a00fd21"],"related_changes":[],"relations":[],"section":"Utility Commands / Constraints","section_path":["Utility Commands","Constraints"],"source_commits":["b663b9436"],"source_entry_id":"18.0/changes/083","source_hash":"062a57914f39af06b5e61c9892baed456e5c24e484a6259c145f99dfd61fda32","source_url":"/docs/release/18.0/#RELEASE-18-CONSTRAINTS","statement_hash":"15cb6c826ef8120a3dec63ed2b6c3cd1e5eebed7e6a87ec7d752833735252b0d","text":"Allow NOT VALID foreign key constraints on partitioned tables (Amul Sul) §","title":"Allow NOT VALID foreign key constraints on partitioned tables","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["4dea33ce7"],"commit_groups":[["4dea33ce7"]],"commits":["4dea33ce7"],"cves":[],"db_id":"18344143b41582623ed016d08d3724f0","html":"\u003cp\u003eAllow \u003ca href=\"/docs/18/sql-altertable.html#SQL-ALTERTABLE-DESC-DROP-CONSTRAINT\"\u003edropping\u003c/a\u003e of constraints \u003ccode\u003eONLY\u003c/code\u003e on partitioned tables (Álvaro Herrera) \u003ca href=\"https://postgr.es/c/4dea33ce7\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis was previously erroneously prohibited.\u003c/p\u003e","id":"18.0-f1d806ac686f4f4b","identity_text":"Allow dropping of constraints ONLY on partitioned tables (Álvaro Herrera) This was previously erroneously prohibited.","part":"changes","patch_ids":["e01f71769bcebafa65ea9e9facbc8f0e"],"related_changes":[],"relations":[],"section":"Utility Commands / Constraints","section_path":["Utility Commands","Constraints"],"source_commits":["4dea33ce7"],"source_entry_id":"18.0/changes/084","source_hash":"8c1219c56b3716c6e0669450727af7aed75763ee754fd98663afe83cdbb70624","source_url":"/docs/release/18.0/#RELEASE-18-CONSTRAINTS","statement_hash":"2f709f0920ff299f36d06fa6d2c5e29a93df41901d6a0aa8e7f22d2226fd478d","text":"Allow dropping of constraints ONLY on partitioned tables (Álvaro Herrera) § This was previously erroneously prohibited.","title":"Allow dropping of constraints ONLY on partitioned tables","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["4ac2a9bec"],"commit_groups":[["4ac2a9bec"]],"commits":["4ac2a9bec"],"cves":[],"db_id":"674d24a9f1cfc352eb2363f11a5c7539","html":"\u003cp\u003eAdd \u003ccode\u003eREJECT_LIMIT\u003c/code\u003e to control the number of invalid rows \u003ccode\u003eCOPY FROM\u003c/code\u003e can ignore (Atsushi Torikoshi) \u003ca href=\"https://postgr.es/c/4ac2a9bec\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is available when \u003ccode\u003eON_ERROR = 'ignore'\u003c/code\u003e.\u003c/p\u003e","id":"18.0-b15309054d630829","identity_text":"Add REJECT_LIMIT to control the number of invalid rows COPY FROM can ignore (Atsushi Torikoshi) This is available when ON_ERROR = 'ignore'.","part":"changes","patch_ids":["7f4f9e66d9ca5682846e93efd1b5fc7d"],"related_changes":[],"relations":[],"section":"Utility Commands / COPY","section_path":["Utility Commands","COPY"],"source_commits":["4ac2a9bec"],"source_entry_id":"18.0/changes/085","source_hash":"f3981715f3b71b16f4c72e77aa2ec03da5d40cb477dd6d80bc4cf5c4d4f90e5c","source_url":"/docs/release/18.0/#RELEASE-18-COPY","statement_hash":"698a53fb14412adff83d040ae615676e6a127786304207e285e2519d605a92e2","text":"Add REJECT_LIMIT to control the number of invalid rows COPY FROM can ignore (Atsushi Torikoshi) § This is available when ON_ERROR = 'ignore'.","title":"Add REJECT_LIMIT to control the number of invalid rows COPY FROM can ignore","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["534874fac"],"commit_groups":[["534874fac"]],"commits":["534874fac"],"cves":[],"db_id":"23a5576dc9182181550cee0d3d6263bc","html":"\u003cp\u003eAllow \u003ccode\u003eCOPY TO\u003c/code\u003e to copy rows from populated materialized views (Jian He) \u003ca href=\"https://postgr.es/c/534874fac\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-5cd8e6c78484f775","identity_text":"Allow COPY TO to copy rows from populated materialized views (Jian He)","part":"changes","patch_ids":["9ad7b973037ff1a0a179ec607ca95b25"],"related_changes":[],"relations":[],"section":"Utility Commands / COPY","section_path":["Utility Commands","COPY"],"source_commits":["534874fac"],"source_entry_id":"18.0/changes/086","source_hash":"e37c4454ecdf402763cdc909e3004d4bd7ae457a278af9953c8d49c850da3008","source_url":"/docs/release/18.0/#RELEASE-18-COPY","statement_hash":"580d88384b12572bdc1dba7d048eec5819aaebb667e38fe313dc4e980a4939c0","text":"Allow COPY TO to copy rows from populated materialized views (Jian He) §","title":"Allow COPY TO to copy rows from populated materialized views","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["e7834a1a2"],"commit_groups":[["e7834a1a2"]],"commits":["e7834a1a2"],"cves":[],"db_id":"30be8963700022701b7661b754782b3b","html":"\u003cp\u003eAdd \u003ccode\u003eCOPY\u003c/code\u003e \u003ccode\u003eLOG_VERBOSITY\u003c/code\u003e level \u003ccode\u003esilent\u003c/code\u003e to suppress log output of ignored rows (Atsushi Torikoshi) \u003ca href=\"https://postgr.es/c/e7834a1a2\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis new level suppresses output for discarded input rows when \u003ccode\u003eon_error = 'ignore'\u003c/code\u003e.\u003c/p\u003e","id":"18.0-6731adec896c7c19","identity_text":"Add COPY LOG_VERBOSITY level silent to suppress log output of ignored rows (Atsushi Torikoshi) This new level suppresses output for discarded input rows when on_error = 'ignore'.","part":"changes","patch_ids":["f569a49fa09919d4034e2b06b4c342ce"],"related_changes":[],"relations":[],"section":"Utility Commands / COPY","section_path":["Utility Commands","COPY"],"source_commits":["e7834a1a2"],"source_entry_id":"18.0/changes/087","source_hash":"e30568a05a51cc956d53c72dd6423d9460b332d5296181fd3e08afd8bd29367c","source_url":"/docs/release/18.0/#RELEASE-18-COPY","statement_hash":"6d5f23b832ecbeab177e4573126032823a2586d9ba213cd63d0d47a0f54a12a6","text":"Add COPY LOG_VERBOSITY level silent to suppress log output of ignored rows (Atsushi Torikoshi) § This new level suppresses output for discarded input rows when on_error = 'ignore'.","title":"Add COPY LOG_VERBOSITY level silent to suppress log output of ignored rows","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["401a6956f"],"commit_groups":[["401a6956f"]],"commits":["401a6956f"],"cves":[],"db_id":"75550bfda376779970fec97260fe8639","html":"\u003cp\u003eDisallow \u003ccode\u003eCOPY FREEZE\u003c/code\u003e on foreign tables (Nathan Bossart) \u003ca href=\"https://postgr.es/c/401a6956f\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePreviously, the \u003ccode\u003eCOPY\u003c/code\u003e worked but the \u003ccode\u003eFREEZE\u003c/code\u003e was ignored, so disallow this command.\u003c/p\u003e","id":"18.0-1a1baaed5585a779","identity_text":"Disallow COPY FREEZE on foreign tables (Nathan Bossart) Previously, the COPY worked but the FREEZE was ignored, so disallow this command.","part":"changes","patch_ids":["eee714494241fff433db4787d9092a87"],"related_changes":[],"relations":[],"section":"Utility Commands / COPY","section_path":["Utility Commands","COPY"],"source_commits":["401a6956f"],"source_entry_id":"18.0/changes/088","source_hash":"2bfc9a6e767e8725680471126a503535a61702174b5a16a1bf2bd6118f06eb97","source_url":"/docs/release/18.0/#RELEASE-18-COPY","statement_hash":"032b9ea2d143e561478378fffea7290a140c3417066719b65f9a85e0be0fc8cc","text":"Disallow COPY FREEZE on foreign tables (Nathan Bossart) § Previously, the COPY worked but the FREEZE was ignored, so disallow this command.","title":"Disallow COPY FREEZE on foreign tables","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["c2a4078eb"],"commit_groups":[["c2a4078eb"]],"commits":["c2a4078eb"],"cves":[],"db_id":"7d0150a8d96ebdd5210b00551808f87c","html":"\u003cp\u003eAutomatically include \u003ccode\u003eBUFFERS\u003c/code\u003e output in \u003ccode\u003eEXPLAIN ANALYZE\u003c/code\u003e (Guillaume Lelarge, David Rowley) \u003ca href=\"https://postgr.es/c/c2a4078eb\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-4732efcce00b7547","identity_text":"Automatically include BUFFERS output in EXPLAIN ANALYZE (Guillaume Lelarge, David Rowley)","part":"changes","patch_ids":["fe41e5c5aa3992b5c1d39d93a7d6ea31"],"related_changes":[],"relations":[],"section":"Utility Commands / EXPLAIN","section_path":["Utility Commands","EXPLAIN"],"source_commits":["c2a4078eb"],"source_entry_id":"18.0/changes/089","source_hash":"4f1cc832b26669ebc18ab566168b38ef39fca619a6c92e252369b01f5a0bc9b1","source_url":"/docs/release/18.0/#RELEASE-18-EXPLAIN","statement_hash":"4d3ebf18daea69902eaf0d735f16086aa29e7bb1546e40ac2dd310ec32bfb65a","text":"Automatically include BUFFERS output in EXPLAIN ANALYZE (Guillaume Lelarge, David Rowley) §","title":"Automatically include BUFFERS output in EXPLAIN ANALYZE","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["320545bfc"],"commit_groups":[["320545bfc"]],"commits":["320545bfc"],"cves":[],"db_id":"b1402b6353f73f398c174abfd4cb75f4","html":"\u003cp\u003eAdd full \u003cacronym\u003eWAL\u003c/acronym\u003e buffer count to \u003ccode\u003eEXPLAIN (WAL)\u003c/code\u003e output (Bertrand Drouvot) \u003ca href=\"https://postgr.es/c/320545bfc\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-f88980978c25aa7b","identity_text":"Add full WAL buffer count to EXPLAIN (WAL) output (Bertrand Drouvot)","part":"changes","patch_ids":["585091e9e2e1078246b0ecd89829b72f"],"related_changes":[],"relations":[],"section":"Utility Commands / EXPLAIN","section_path":["Utility Commands","EXPLAIN"],"source_commits":["320545bfc"],"source_entry_id":"18.0/changes/090","source_hash":"e70f8707fdfc9a5e11eecfc7be79f12ac25687ff9f9a598bab2bbed10e7952a3","source_url":"/docs/release/18.0/#RELEASE-18-EXPLAIN","statement_hash":"2bef83ac1581f3e0e2e23bb3dffbd7e2bca8cd32e26f6b3b7649706bc5985e3b","text":"Add full WAL buffer count to EXPLAIN (WAL) output (Bertrand Drouvot) §","title":"Add full WAL buffer count to EXPLAIN (WAL) output","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["0fbceae84"],"commit_groups":[["0fbceae84"]],"commits":["0fbceae84"],"cves":[],"db_id":"bab8dbda4117422a88669df5576a5023","html":"\u003cp\u003eIn \u003ccode\u003eEXPLAIN ANALYZE\u003c/code\u003e, report the number of index lookups used per index scan node (Peter Geoghegan) \u003ca href=\"https://postgr.es/c/0fbceae84\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-0ec1e9f670b7bf87","identity_text":"In EXPLAIN ANALYZE, report the number of index lookups used per index scan node (Peter Geoghegan)","part":"changes","patch_ids":["47bcd366fc2b2d8e747acc4acdbe8c4a"],"related_changes":[],"relations":[],"section":"Utility Commands / EXPLAIN","section_path":["Utility Commands","EXPLAIN"],"source_commits":["0fbceae84"],"source_entry_id":"18.0/changes/091","source_hash":"b06d2547a2689ffeff48c0ee4af3b40f10b120d0b14fd78b648019997ca231f1","source_url":"/docs/release/18.0/#RELEASE-18-EXPLAIN","statement_hash":"58f0bb81e5341548a9a6e1f357ff1230ec2d0249b162ecc2c4516fa91c0cda6d","text":"In EXPLAIN ANALYZE, report the number of index lookups used per index scan node (Peter Geoghegan) §","title":"In EXPLAIN ANALYZE, report the number of index lookups used per index scan node","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["95dbd827f","ddb17e387"],"commit_groups":[["95dbd827f"],["ddb17e387"]],"commits":["95dbd827f","ddb17e387"],"cves":[],"db_id":"2cbb7e039caf18034654ec1ad2162ce6","html":"\u003cp\u003eModify \u003ccode\u003eEXPLAIN\u003c/code\u003e to output fractional row counts (Ibrar Ahmed, Ilia Evdokimov, Robert Haas) \u003ca href=\"https://postgr.es/c/ddb17e387\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/95dbd827f\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-8f617caa6756d686","identity_text":"Modify EXPLAIN to output fractional row counts (Ibrar Ahmed, Ilia Evdokimov, Robert Haas)","part":"changes","patch_ids":["277dfa6cd96707a4511579fea69bdf42","a7a2bc7d28fb59615d3820a1aef1ada5"],"related_changes":[],"relations":[],"section":"Utility Commands / EXPLAIN","section_path":["Utility Commands","EXPLAIN"],"source_commits":["95dbd827f","ddb17e387"],"source_entry_id":"18.0/changes/092","source_hash":"8b372df1de3e847251475feecff87511212ef4a7308f2ab3f9d3991a4f7f1271","source_url":"/docs/release/18.0/#RELEASE-18-EXPLAIN","statement_hash":"f3ad444cd57c43a8eb9aef5c6daf8d22789e8e21aecd35286d59347003a31e47","text":"Modify EXPLAIN to output fractional row counts (Ibrar Ahmed, Ilia Evdokimov, Robert Haas) § §","title":"Modify EXPLAIN to output fractional row counts","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["1eff8279d","40708acd6","53abb1e0e","95d6e9af0"],"commit_groups":[["1eff8279d"],["40708acd6"],["53abb1e0e"],["95d6e9af0"]],"commits":["1eff8279d","40708acd6","53abb1e0e","95d6e9af0"],"cves":[],"db_id":"f7637a7e9a3f81b57fe9146041535ad8","html":"\u003cp\u003eAdd memory and disk usage details to \u003ccode\u003eMaterial\u003c/code\u003e, \u003ccode\u003eWindow Aggregate\u003c/code\u003e, and common table expression nodes to \u003ccode\u003eEXPLAIN\u003c/code\u003e output (David Rowley, Tatsuo Ishii) \u003ca href=\"https://postgr.es/c/1eff8279d\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/53abb1e0e\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/95d6e9af0\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/40708acd6\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-601ba6789b6723ef","identity_text":"Add memory and disk usage details to Material, Window Aggregate, and common table expression nodes to EXPLAIN output (David Rowley, Tatsuo Ishii)","part":"changes","patch_ids":["1df52fbee5d573687d789986df7b35c2","c360be90ce7d5bd791ad4622b5bfbe57","ee6f3673f5e42eb9d5bf8e348328fafe","f8173d6a2780f722fa00fec00898b957"],"related_changes":[],"relations":[],"section":"Utility Commands / EXPLAIN","section_path":["Utility Commands","EXPLAIN"],"source_commits":["1eff8279d","40708acd6","53abb1e0e","95d6e9af0"],"source_entry_id":"18.0/changes/093","source_hash":"f128c3ab11e36d502813b59e5ae2fff45e8771de891b8f3d9df293688b89b071","source_url":"/docs/release/18.0/#RELEASE-18-EXPLAIN","statement_hash":"82672a2762009bce7205451b2953885a722ed7d77e229835b6189709c86f9901","text":"Add memory and disk usage details to Material, Window Aggregate, and common table expression nodes to EXPLAIN output (David Rowley, Tatsuo Ishii) § § § §","title":"Add memory and disk usage details to Material, Window Aggregate, and common table expression nodes to EXPLAIN output","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["8b1b34254"],"commit_groups":[["8b1b34254"]],"commits":["8b1b34254"],"cves":[],"db_id":"e18d645dd62690d4179d6a67439f312c","html":"\u003cp\u003eAdd details about window function arguments to \u003ccode\u003eEXPLAIN\u003c/code\u003e output (Tom Lane) \u003ca href=\"https://postgr.es/c/8b1b34254\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-88dd6a58e55cfdde","identity_text":"Add details about window function arguments to EXPLAIN output (Tom Lane)","part":"changes","patch_ids":["ec84a482b22364ca0904164bf7b650a1"],"related_changes":[],"relations":[],"section":"Utility Commands / EXPLAIN","section_path":["Utility Commands","EXPLAIN"],"source_commits":["8b1b34254"],"source_entry_id":"18.0/changes/094","source_hash":"a9c598e09704fea78f54ec79c93b4f2ed12edb7ffa65c7f4ff645e8207780e58","source_url":"/docs/release/18.0/#RELEASE-18-EXPLAIN","statement_hash":"b368768879451808ef2f7dd803b2c8af870c11d3c483e0d30a7664d513201eec","text":"Add details about window function arguments to EXPLAIN output (Tom Lane) §","title":"Add details about window function arguments to EXPLAIN output","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["5a1e6df3b"],"commit_groups":[["5a1e6df3b"]],"commits":["5a1e6df3b"],"cves":[],"db_id":"778e042a7bca864fc20e787657eae283","html":"\u003cp\u003eAdd \u003ccode\u003eParallel Bitmap Heap Scan\u003c/code\u003e worker cache statistics to \u003ccode\u003eEXPLAIN ANALYZE\u003c/code\u003e (David Geier, Heikki Linnakangas, Donghang Lin, Alena Rybakina, David Rowley) \u003ca href=\"https://postgr.es/c/5a1e6df3b\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-c57e3b87c33cec9d","identity_text":"Add Parallel Bitmap Heap Scan worker cache statistics to EXPLAIN ANALYZE (David Geier, Heikki Linnakangas, Donghang Lin, Alena Rybakina, David Rowley)","part":"changes","patch_ids":["e13545dcffc8e4f5983b60b2c8dc26ba"],"related_changes":[],"relations":[],"section":"Utility Commands / EXPLAIN","section_path":["Utility Commands","EXPLAIN"],"source_commits":["5a1e6df3b"],"source_entry_id":"18.0/changes/095","source_hash":"382a101c5350e51e68527939a7c17f3fbe53b219e5fe816c8ac8707b587e49d8","source_url":"/docs/release/18.0/#RELEASE-18-EXPLAIN","statement_hash":"d40345a739f93231913a4643f6a21e7b83e12c707c288b83ad808ec462ebfab5","text":"Add Parallel Bitmap Heap Scan worker cache statistics to EXPLAIN ANALYZE (David Geier, Heikki Linnakangas, Donghang Lin, Alena Rybakina, David Rowley) §","title":"Add Parallel Bitmap Heap Scan worker cache statistics to EXPLAIN ANALYZE","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["161320b4b","84b8fccbe","c01743aa4"],"commit_groups":[["161320b4b"],["84b8fccbe"],["c01743aa4"]],"commits":["161320b4b","84b8fccbe","c01743aa4"],"cves":[],"db_id":"23300e43061f5fe045f54955a393e875","html":"\u003cp\u003eIndicate disabled nodes in \u003ccode\u003eEXPLAIN ANALYZE\u003c/code\u003e output (Robert Haas, David Rowley, Laurenz Albe) \u003ca href=\"https://postgr.es/c/c01743aa4\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/161320b4b\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/84b8fccbe\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-b4f1bde46728e1ad","identity_text":"Indicate disabled nodes in EXPLAIN ANALYZE output (Robert Haas, David Rowley, Laurenz Albe)","part":"changes","patch_ids":["a368e7a7240f0fb39e7661639c1ec43f","b0f9881746d36f6f632c01f913c024af","b3db3ec60dd1a995198a4a30f82beeb4"],"related_changes":[],"relations":[],"section":"Utility Commands / EXPLAIN","section_path":["Utility Commands","EXPLAIN"],"source_commits":["161320b4b","84b8fccbe","c01743aa4"],"source_entry_id":"18.0/changes/096","source_hash":"fe9c0805a96c737b939c7d7c8fdc3329f7bda6e4ff8933f5a1f2595bb3219c99","source_url":"/docs/release/18.0/#RELEASE-18-EXPLAIN","statement_hash":"d7e90390fe778b0bea90d6844d9f6909dcab1b9e76b1990046da386d75f0f3bd","text":"Indicate disabled nodes in EXPLAIN ANALYZE output (Robert Haas, David Rowley, Laurenz Albe) § § §","title":"Indicate disabled nodes in EXPLAIN ANALYZE output","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["286a365b9","4e7f62bc3"],"commit_groups":[["286a365b9"],["4e7f62bc3"]],"commits":["286a365b9","4e7f62bc3"],"cves":[],"db_id":"1b2ed6a4886122496b4235e9bc502410","html":"\u003cp\u003eImprove \u003ca href=\"/docs/18/collation.html#COLLATION-MANAGING-STANDARD\" title=\"23.2.2.1. Standard Collations\"\u003eUnicode\u003c/a\u003e full case mapping and conversion (Jeff Davis) \u003ca href=\"https://postgr.es/c/4e7f62bc3\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/286a365b9\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis adds the ability to do conditional and title case mapping, and case map single characters to multiple characters.\u003c/p\u003e","id":"18.0-2af3118e9cf895c6","identity_text":"Improve Unicode full case mapping and conversion (Jeff Davis) This adds the ability to do conditional and title case mapping, and case map single characters to multiple characters.","part":"changes","patch_ids":["0bc695a859154bdbe2aa4141a8c131d7","c4d90a2c6dc576697ae6803230585a80"],"related_changes":[],"relations":[],"section":"Data Types","section_path":["Data Types"],"source_commits":["286a365b9","4e7f62bc3"],"source_entry_id":"18.0/changes/097","source_hash":"44c26c92986f06630e401c20db860295e1e24fcd5259ea9ea934f4bf062fdd8e","source_url":"/docs/release/18.0/#RELEASE-18-DATATYPES","statement_hash":"02776b8149a82584d272cc2094e4a669aca778c5844f65839a5f72cf0687f143","text":"Improve Unicode full case mapping and conversion (Jeff Davis) § § This adds the ability to do conditional and title case mapping, and case map single characters to multiple characters.","title":"Improve Unicode full case mapping and conversion","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["a5579a90a"],"commit_groups":[["a5579a90a"]],"commits":["a5579a90a"],"cves":[],"db_id":"707a9526e8d1e6416419dcc4e0f8c1fb","html":"\u003cp\u003eAllow \u003ca href=\"/docs/18/datatype-json.html\" title=\"8.14. JSON Types\"\u003e\u003ccode\u003ejsonb\u003c/code\u003e\u003c/a\u003e \u003ccode\u003enull\u003c/code\u003e values to be cast to scalar types as \u003ccode\u003eNULL\u003c/code\u003e (Tom Lane) \u003ca href=\"https://postgr.es/c/a5579a90a\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePreviously such casts generated an error.\u003c/p\u003e","id":"18.0-e8ea7869a8082253","identity_text":"Allow jsonb null values to be cast to scalar types as NULL (Tom Lane) Previously such casts generated an error.","part":"changes","patch_ids":["f6184b101cbccd529291b34b9ea43559"],"related_changes":[],"relations":[],"section":"Data Types","section_path":["Data Types"],"source_commits":["a5579a90a"],"source_entry_id":"18.0/changes/098","source_hash":"1e15ce0182df8ba9bb4f5d3c70a693a1c71b87744e48c4280afcb76462804520","source_url":"/docs/release/18.0/#RELEASE-18-DATATYPES","statement_hash":"e835773742df55f58b57f5dbf777b47ddc9916b939e5f10a60426d8f63610fdd","text":"Allow jsonb null values to be cast to scalar types as NULL (Tom Lane) § Previously such casts generated an error.","title":"Allow jsonb null values to be cast to scalar types as NULL","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["4603903d2"],"commit_groups":[["4603903d2"]],"commits":["4603903d2"],"cves":[],"db_id":"ed4ae5d934182b8abe85d461b1aec905","html":"\u003cp\u003eAdd optional parameter to \u003ca href=\"/docs/18/functions-json.html#FUNCTIONS-JSON-PROCESSING-TABLE\" title=\"Table 9.51. JSON Processing Functions\"\u003e\u003ccode\u003ejson{b}_strip_nulls\u003c/code\u003e\u003c/a\u003e to allow removal of null array elements (Florents Tselai) \u003ca href=\"https://postgr.es/c/4603903d2\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-69d404540f719906","identity_text":"Add optional parameter to json{b}_strip_nulls to allow removal of null array elements (Florents Tselai)","part":"changes","patch_ids":["53957a139405a1a63e2a80ae5c7633c5"],"related_changes":[],"relations":[],"section":"Data Types","section_path":["Data Types"],"source_commits":["4603903d2"],"source_entry_id":"18.0/changes/099","source_hash":"4c2e22cc8bbb8a2d5f13e86d2e97e51a1bc8f88c107067a603ace9ebb1958a85","source_url":"/docs/release/18.0/#RELEASE-18-DATATYPES","statement_hash":"2353d6854c138551fa6c128dc9828ac36b241d8c813afe7719a90cbfd0e910d5","text":"Add optional parameter to json{b}_strip_nulls to allow removal of null array elements (Florents Tselai) §","title":"Add optional parameter to json{b}_strip_nulls to allow removal of null array elements","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["6c12ae09f"],"commit_groups":[["6c12ae09f"]],"commits":["6c12ae09f"],"cves":[],"db_id":"4de325fa4535491c0694238b7c98f7e6","html":"\u003cp\u003eAdd function \u003ca href=\"/docs/18/functions-array.html#ARRAY-FUNCTIONS-TABLE\" title=\"Table 9.57. Array Functions\"\u003e\u003ccode\u003earray_sort()\u003c/code\u003e\u003c/a\u003e which sorts an array's first dimension (Junwang Zhao, Jian He) \u003ca href=\"https://postgr.es/c/6c12ae09f\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-cea24b509f4bf358","identity_text":"Add function array_sort() which sorts an array's first dimension (Junwang Zhao, Jian He)","part":"changes","patch_ids":["c7bff0b37a68e7db3427774c38619ac7"],"related_changes":[],"relations":[],"section":"Data Types","section_path":["Data Types"],"source_commits":["6c12ae09f"],"source_entry_id":"18.0/changes/100","source_hash":"d7b1e0835defdcd73c1e32e6c1505e43bd755d4dea033a81de1a49ce898debb2","source_url":"/docs/release/18.0/#RELEASE-18-DATATYPES","statement_hash":"1b8e208dd9da84b68630db6e70eaa1b1e97cbd8295baf3141f5837933861cba9","text":"Add function array_sort() which sorts an array's first dimension (Junwang Zhao, Jian He) §","title":"Add function array_sort() which sorts an array's first dimension","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["49d6c7d8d"],"commit_groups":[["49d6c7d8d"]],"commits":["49d6c7d8d"],"cves":[],"db_id":"04303e115e57612dca79ef5a9ab63041","html":"\u003cp\u003eAdd function \u003ca href=\"/docs/18/functions-array.html#ARRAY-FUNCTIONS-TABLE\" title=\"Table 9.57. Array Functions\"\u003e\u003ccode\u003earray_reverse()\u003c/code\u003e\u003c/a\u003e which reverses an array's first dimension (Aleksander Alekseev) \u003ca href=\"https://postgr.es/c/49d6c7d8d\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-19b55afd582ddf02","identity_text":"Add function array_reverse() which reverses an array's first dimension (Aleksander Alekseev)","part":"changes","patch_ids":["03ae5b8911f272ccafb9c3876c7f3387"],"related_changes":[],"relations":[],"section":"Data Types","section_path":["Data Types"],"source_commits":["49d6c7d8d"],"source_entry_id":"18.0/changes/101","source_hash":"0631b9c5fc256653b132c39b3f93cb09c7938372c029c53b13f58d93b434e1d7","source_url":"/docs/release/18.0/#RELEASE-18-DATATYPES","statement_hash":"8008e051e0fc517cdec2a45e989e6e7cf3ead188464cab7ad031a5aa5adf21bc","text":"Add function array_reverse() which reverses an array's first dimension (Aleksander Alekseev) §","title":"Add function array_reverse() which reverses an array's first dimension","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["0697b2390"],"commit_groups":[["0697b2390"]],"commits":["0697b2390"],"cves":[],"db_id":"f44735403faab808dbc8e70e494d5367","html":"\u003cp\u003eAdd function \u003ca href=\"/docs/18/functions-string.html#FUNCTIONS-STRING-OTHER\" title=\"Table 9.10. Other String Functions and Operators\"\u003e\u003ccode\u003ereverse()\u003c/code\u003e\u003c/a\u003e to reverse bytea bytes (Aleksander Alekseev) \u003ca href=\"https://postgr.es/c/0697b2390\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-a256c0a1a1f5c17b","identity_text":"Add function reverse() to reverse bytea bytes (Aleksander Alekseev)","part":"changes","patch_ids":["5cd9af568be42f1acea780c7bf2bdae5"],"related_changes":[],"relations":[],"section":"Data Types","section_path":["Data Types"],"source_commits":["0697b2390"],"source_entry_id":"18.0/changes/102","source_hash":"1391c72bc875fa563fe97e4f3f326d89ade66c1b138208d1e0a1347035f3eef4","source_url":"/docs/release/18.0/#RELEASE-18-DATATYPES","statement_hash":"db66fdeed8508fd104685446965f51db4ef1eff1fd2180c36767e29306ad806b","text":"Add function reverse() to reverse bytea bytes (Aleksander Alekseev) §","title":"Add function reverse() to reverse bytea bytes","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["6da469bad"],"commit_groups":[["6da469bad"]],"commits":["6da469bad"],"cves":[],"db_id":"5551ec9759852e876b78cdf60b7e5861","html":"\u003cp\u003eAllow casting between integer types and \u003ca href=\"/docs/18/datatype-binary.html\" title=\"8.4. Binary Data Types\"\u003e\u003ccode\u003ebytea\u003c/code\u003e\u003c/a\u003e (Aleksander Alekseev) \u003ca href=\"https://postgr.es/c/6da469bad\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe integer values are stored as \u003ccode\u003ebytea\u003c/code\u003e two's complement values.\u003c/p\u003e","id":"18.0-91ec2a175f6e81fe","identity_text":"Allow casting between integer types and bytea (Aleksander Alekseev) The integer values are stored as bytea two's complement values.","part":"changes","patch_ids":["129367dc9e7217c5b7de91653664e367"],"related_changes":[],"relations":[],"section":"Data Types","section_path":["Data Types"],"source_commits":["6da469bad"],"source_entry_id":"18.0/changes/103","source_hash":"ac3d81087880686f7b48568deaab6ff750ea049c29d4a529345affdd9137af3a","source_url":"/docs/release/18.0/#RELEASE-18-DATATYPES","statement_hash":"6e79726a30c9f23d82d38671f942cd48ed1a9b83b8184d44b3cd08ccdc47ba18","text":"Allow casting between integer types and bytea (Aleksander Alekseev) § The integer values are stored as bytea two's complement values.","title":"Allow casting between integer types and bytea","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["82a46cca9"],"commit_groups":[["82a46cca9"]],"commits":["82a46cca9"],"cves":[],"db_id":"b3a13160940dac3f7a1a1af7f4cf764d","html":"\u003cp\u003eUpdate Unicode data to \u003ca href=\"/docs/18/collation.html#COLLATION-MANAGING-STANDARD\" title=\"23.2.2.1. Standard Collations\"\u003eUnicode\u003c/a\u003e 16.0.0 (Peter Eisentraut) \u003ca href=\"https://postgr.es/c/82a46cca9\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-b7f5c835bb8cb99a","identity_text":"Update Unicode data to Unicode 16.0.0 (Peter Eisentraut)","part":"changes","patch_ids":["37e8f514959e205b0155b61312d52d56"],"related_changes":[],"relations":[],"section":"Data Types","section_path":["Data Types"],"source_commits":["82a46cca9"],"source_entry_id":"18.0/changes/104","source_hash":"7b363edbf7fc1652e00ae639f016a531400b78a1501225262fbf76a7fc2c0dd8","source_url":"/docs/release/18.0/#RELEASE-18-DATATYPES","statement_hash":"dc448dd80b25033f629182d9bb00f6e6eb258933e0fc988309cd3ddbaf4be408","text":"Update Unicode data to Unicode 16.0.0 (Peter Eisentraut) §","title":"Update Unicode data to Unicode 16.0.0","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["197427fb3","7edd2cbc5","8388cae55","9c46d902b","b464e51ab","c0c364fa1"],"commit_groups":[["197427fb3","7edd2cbc5","8388cae55","9c46d902b","b464e51ab","c0c364fa1"]],"commits":["b464e51ab"],"cves":[],"db_id":"d02c90e2590d4a47f73a5782496b4966","html":"\u003cp\u003eAdd full text search \u003ca href=\"/docs/18/textsearch-dictionaries.html#TEXTSEARCH-SNOWBALL-DICTIONARY\" title=\"12.6.6. Snowball Dictionary\"\u003estemming\u003c/a\u003e for Estonian (Tom Lane) \u003ca href=\"https://postgr.es/c/b464e51ab\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-5f1391509757dd6d","identity_text":"Add full text search stemming for Estonian (Tom Lane)","part":"changes","patch_ids":["d20fbffc83ee90d1348f1d03836b8f18"],"related_changes":[{"db_id":"fe6fa87c7f7a2f01e5226fc8b75d4395","evidence":{"patch_ids":["d20fbffc83ee90d1348f1d03836b8f18"],"same_day":false},"kind":"related","label":"17.5","source_url":"/docs/release/17.5/#RELEASE-17-5-CHANGES","title":"Avoid crash when a Snowball stemmer encounters an out-of-memory condition","url":"/docs/compare/?release=17.5#17.5-88fad50b7b3b2e15","version":"17.5"},{"db_id":"c2850458f2850974df366bef8a85488e","evidence":{"patch_ids":["d20fbffc83ee90d1348f1d03836b8f18"],"same_day":false},"kind":"related","label":"16.9","source_url":"/docs/release/16.9/#RELEASE-16-9-CHANGES","title":"Avoid crash when a Snowball stemmer encounters an out-of-memory condition","url":"/docs/compare/?release=16.9#16.9-71f38ed0f1b64f88","version":"16.9"},{"db_id":"00feddbb8384a7a8cefe4217cd497215","evidence":{"patch_ids":["d20fbffc83ee90d1348f1d03836b8f18"],"same_day":false},"kind":"related","label":"15.13","source_url":"/docs/release/15.13/#id-1.11.6.12.5","title":"Avoid crash when a Snowball stemmer encounters an out-of-memory condition","url":"/docs/compare/?release=15.13#15.13-6fa1c30b53ef4a7a","version":"15.13"},{"db_id":"d6bf0f560b8ac8cad3c1d6a070b45594","evidence":{"patch_ids":["d20fbffc83ee90d1348f1d03836b8f18"],"same_day":false},"kind":"related","label":"14.18","source_url":"/docs/release/14.18/#id-1.11.6.12.5","title":"Avoid crash when a Snowball stemmer encounters an out-of-memory condition","url":"/docs/compare/?release=14.18#14.18-813abffbc8584526","version":"14.18"},{"db_id":"43dbc69a435522e8a12bbf37193bcbca","evidence":{"patch_ids":["d20fbffc83ee90d1348f1d03836b8f18"],"same_day":false},"kind":"related","label":"13.21","source_url":"/docs/release/13.21/#id-1.11.6.8.6","title":"Avoid crash when a Snowball stemmer encounters an out-of-memory condition","url":"/docs/compare/?release=13.21#13.21-7de382d5402e6e82","version":"13.21"}],"relations":[{"evidence":{"patch_ids":["d20fbffc83ee90d1348f1d03836b8f18"],"same_day":false},"rule":2,"target":"00feddbb8384a7a8cefe4217cd497215","type":"related"},{"evidence":{"patch_ids":["d20fbffc83ee90d1348f1d03836b8f18"],"same_day":false},"rule":2,"target":"43dbc69a435522e8a12bbf37193bcbca","type":"related"},{"evidence":{"patch_ids":["d20fbffc83ee90d1348f1d03836b8f18"],"same_day":false},"rule":2,"target":"c2850458f2850974df366bef8a85488e","type":"related"},{"evidence":{"patch_ids":["d20fbffc83ee90d1348f1d03836b8f18"],"same_day":false},"rule":2,"target":"d6bf0f560b8ac8cad3c1d6a070b45594","type":"related"},{"evidence":{"patch_ids":["d20fbffc83ee90d1348f1d03836b8f18"],"same_day":false},"rule":2,"target":"fe6fa87c7f7a2f01e5226fc8b75d4395","type":"related"}],"section":"Data Types","section_path":["Data Types"],"source_commits":["b464e51ab"],"source_entry_id":"18.0/changes/105","source_hash":"dd6878414ee23406689c7eefc1a641935c96e6bd890e0e1431ff6fd28bfca759","source_url":"/docs/release/18.0/#RELEASE-18-DATATYPES","statement_hash":"765cc1defacc087129eb32bf5f736de4c5be16883a95fba7b8adca47a87ce874","text":"Add full text search stemming for Estonian (Tom Lane) §","title":"Add full text search stemming for Estonian","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["cd838e200"],"commit_groups":[["cd838e200"]],"commits":["cd838e200"],"cves":[],"db_id":"29cf32d71ceaf941577232a9a6de849b","html":"\u003cp\u003eImprove the \u003ca href=\"/docs/18/datatype-xml.html\" title=\"8.13. XML Type\"\u003e\u003ccode\u003eXML\u003c/code\u003e\u003c/a\u003e error codes to more closely match the \u003cacronym\u003eSQL\u003c/acronym\u003e standard (Tom Lane) \u003ca href=\"https://postgr.es/c/cd838e200\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThese errors are reported via \u003ca href=\"/docs/18/errcodes-appendix.html\" title=\"Appendix A. PostgreSQL Error Codes\"\u003e\u003ccode\u003eSQLSTATE\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e","id":"18.0-484da2e971e2ea9a","identity_text":"Improve the XML error codes to more closely match the SQL standard (Tom Lane) These errors are reported via SQLSTATE.","part":"changes","patch_ids":["d0cddeae6cd2c47e599df50be2682b02"],"related_changes":[],"relations":[],"section":"Data Types","section_path":["Data Types"],"source_commits":["cd838e200"],"source_entry_id":"18.0/changes/106","source_hash":"b003b4d98dbd5677c14bef49c97e4a7845d1314b654ffa4843f446d7091d0cc6","source_url":"/docs/release/18.0/#RELEASE-18-DATATYPES","statement_hash":"7e7aa4253ca1fd37a6b6fde5f48c3cfc8d4b57bc08b4970e5dc0f9548fa01120","text":"Improve the XML error codes to more closely match the SQL standard (Tom Lane) § These errors are reported via SQLSTATE.","title":"Improve the XML error codes to more closely match the SQL standard","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["bfc599206"],"commit_groups":[["bfc599206"]],"commits":["bfc599206"],"cves":[],"db_id":"b6349fdce5ba2ae112d0be3d05e38198","html":"\u003cp\u003eAdd function \u003ca href=\"/docs/18/functions-string.html#FUNCTIONS-STRING-OTHER\" title=\"Table 9.10. Other String Functions and Operators\"\u003e\u003ccode\u003ecasefold()\u003c/code\u003e\u003c/a\u003e to allow for more sophisticated case-insensitive matching (Jeff Davis) \u003ca href=\"https://postgr.es/c/bfc599206\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis allows more accurate comparisons, i.e., a character can have multiple upper or lower case equivalents, or upper or lower case conversion changes the number of characters.\u003c/p\u003e","id":"18.0-eec605cfdc403633","identity_text":"Add function casefold() to allow for more sophisticated case-insensitive matching (Jeff Davis) This allows more accurate comparisons, i.e., a character can have multiple upper or lower case equivalents, or upper or lower case conversion changes the number of characters.","part":"changes","patch_ids":["0684a21f7afe3e30c9299aaa67789314"],"related_changes":[],"relations":[],"section":"Functions","section_path":["Functions"],"source_commits":["bfc599206"],"source_entry_id":"18.0/changes/107","source_hash":"45cb069e223659d8f877c9a2110d431b847abaa3d2bf90c2d51977f38f2e6cb4","source_url":"/docs/release/18.0/#RELEASE-18-FUNCTIONS","statement_hash":"c9d001f8f460c1f05dad5d20c8956c701fd640f0996cec7198b5decd3f545c09","text":"Add function casefold() to allow for more sophisticated case-insensitive matching (Jeff Davis) § This allows more accurate comparisons, i.e., a character can have multiple upper or lower case equivalents, or upper or lower case conversion changes the number of characters.","title":"Add function casefold() to allow for more sophisticated case-insensitive matching","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["2d24fd942","a0f1fce80"],"commit_groups":[["2d24fd942"],["a0f1fce80"]],"commits":["2d24fd942","a0f1fce80"],"cves":[],"db_id":"ff1f62132a8b10a5b46e5398263f6f25","html":"\u003cp\u003eAllow \u003ca href=\"/docs/18/functions-aggregate.html#FUNCTIONS-AGGREGATE-TABLE\" title=\"Table 9.62. General-Purpose Aggregate Functions\"\u003e\u003ccode\u003eMIN()\u003c/code\u003e\u003c/a\u003e/\u003ca href=\"/docs/18/functions-aggregate.html#FUNCTIONS-AGGREGATE-TABLE\" title=\"Table 9.62. General-Purpose Aggregate Functions\"\u003e\u003ccode\u003eMAX()\u003c/code\u003e\u003c/a\u003e aggregates on arrays and composite types (Aleksander Alekseev, Marat Buharov) \u003ca href=\"https://postgr.es/c/a0f1fce80\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/2d24fd942\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-6997f70f04ef9a9f","identity_text":"Allow MIN()/MAX() aggregates on arrays and composite types (Aleksander Alekseev, Marat Buharov)","part":"changes","patch_ids":["3edf790a09115a97da7454a772b4af24","918dcba37bfa104714d105730a4fe810"],"related_changes":[],"relations":[],"section":"Functions","section_path":["Functions"],"source_commits":["2d24fd942","a0f1fce80"],"source_entry_id":"18.0/changes/108","source_hash":"5cadbbf5599ab2314a87ecb4f26020de91d5430e9148ef87b799d1518fcb25db","source_url":"/docs/release/18.0/#RELEASE-18-FUNCTIONS","statement_hash":"34aeb4e9e3d29179eef8e884691002728bd47baa789e80ea81c923f3f1058f93","text":"Allow MIN()/MAX() aggregates on arrays and composite types (Aleksander Alekseev, Marat Buharov) § §","title":"Allow MIN()/MAX() aggregates on arrays and composite types","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["6be39d77a"],"commit_groups":[["6be39d77a"]],"commits":["6be39d77a"],"cves":[],"db_id":"b3cffadee5353df8dd7872750d4fb682","html":"\u003cp\u003eAdd a \u003ccode\u003eWEEK\u003c/code\u003e option to \u003ca href=\"/docs/18/functions-datetime.html#FUNCTIONS-DATETIME-EXTRACT\" title=\"9.9.1. EXTRACT, date_part\"\u003e\u003ccode\u003eEXTRACT()\u003c/code\u003e\u003c/a\u003e (Tom Lane) \u003ca href=\"https://postgr.es/c/6be39d77a\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-f22633dee861de77-1","identity_text":"Add a WEEK option to EXTRACT() (Tom Lane)","part":"changes","patch_ids":["c19cf27dbaa7653c29b3098b611b1638"],"related_changes":[{"db_id":"ade04ae5639b5e3efcd757143411e3ce","evidence":{"ambiguous_patch_ids":["c19cf27dbaa7653c29b3098b611b1638"],"patch_ids":["c19cf27dbaa7653c29b3098b611b1638"],"same_day":true},"kind":"related","label":"18.0","source_url":"/docs/release/18.0/#RELEASE-18-FUNCTIONS","title":"Improve the output EXTRACT(QUARTER ...) for negative values","url":"/docs/compare/?release=18.0#18.0-f22633dee861de77-2","version":"18.0"}],"relations":[{"evidence":{"ambiguous_patch_ids":["c19cf27dbaa7653c29b3098b611b1638"],"patch_ids":["c19cf27dbaa7653c29b3098b611b1638"],"same_day":true},"rule":2,"target":"ade04ae5639b5e3efcd757143411e3ce","type":"related"}],"section":"Functions","section_path":["Functions"],"source_commits":["6be39d77a"],"source_entry_id":"18.0/changes/109","source_hash":"c369144b029e6d7b953c4f7ee1baf0f025f8ff93f1ab0ece012d7d3c272b17b1","source_url":"/docs/release/18.0/#RELEASE-18-FUNCTIONS","statement_hash":"d8e836149292c973d2a0f09ad1d451f9e0d694896adc926732c9f533896bd490","text":"Add a WEEK option to EXTRACT() (Tom Lane) §","title":"Add a WEEK option to EXTRACT()","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["6be39d77a"],"commit_groups":[["6be39d77a"]],"commits":["6be39d77a"],"cves":[],"db_id":"ade04ae5639b5e3efcd757143411e3ce","html":"\u003cp\u003eImprove the output \u003ccode\u003eEXTRACT(QUARTER ...)\u003c/code\u003e for negative values (Tom Lane) \u003ca href=\"https://postgr.es/c/6be39d77a\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-f22633dee861de77-2","identity_text":"Improve the output EXTRACT(QUARTER ...) for negative values (Tom Lane)","part":"changes","patch_ids":["c19cf27dbaa7653c29b3098b611b1638"],"related_changes":[{"db_id":"b3cffadee5353df8dd7872750d4fb682","evidence":{"ambiguous_patch_ids":["c19cf27dbaa7653c29b3098b611b1638"],"patch_ids":["c19cf27dbaa7653c29b3098b611b1638"],"same_day":true},"kind":"related","label":"18.0","source_url":"/docs/release/18.0/#RELEASE-18-FUNCTIONS","title":"Add a WEEK option to EXTRACT()","url":"/docs/compare/?release=18.0#18.0-f22633dee861de77-1","version":"18.0"}],"relations":[{"evidence":{"ambiguous_patch_ids":["c19cf27dbaa7653c29b3098b611b1638"],"patch_ids":["c19cf27dbaa7653c29b3098b611b1638"],"same_day":true},"rule":2,"target":"b3cffadee5353df8dd7872750d4fb682","type":"related"}],"section":"Functions","section_path":["Functions"],"source_commits":["6be39d77a"],"source_entry_id":"18.0/changes/110","source_hash":"72c85521604e9cca15c3f296bcf42cbfa34ae96e6cbafa6537be6b0d02e10620","source_url":"/docs/release/18.0/#RELEASE-18-FUNCTIONS","statement_hash":"a214ee4643d1d9bf98ef496b4419597961fc04d5f9e0d55db52838d472d932f1","text":"Improve the output EXTRACT(QUARTER ...) for negative values (Tom Lane) §","title":"Improve the output EXTRACT(QUARTER ...) for negative values","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["172e6b3ad"],"commit_groups":[["172e6b3ad"]],"commits":["172e6b3ad"],"cves":[],"db_id":"e0cbd160d06a691a81d92c71d409a5ef","html":"\u003cp\u003eAdd roman numeral support to \u003ca href=\"/docs/18/functions-formatting.html#FUNCTIONS-FORMATTING-TABLE\" title=\"Table 9.26. Formatting Functions\"\u003e\u003ccode\u003eto_number()\u003c/code\u003e\u003c/a\u003e (Hunaid Sohail) \u003ca href=\"https://postgr.es/c/172e6b3ad\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is accessed via the \u003ccode\u003eRN\u003c/code\u003e pattern.\u003c/p\u003e","id":"18.0-db03fc0c4d7c7e77","identity_text":"Add roman numeral support to to_number() (Hunaid Sohail) This is accessed via the RN pattern.","part":"changes","patch_ids":["133b66dc3fa7a00aecec6623a2a0104a"],"related_changes":[],"relations":[],"section":"Functions","section_path":["Functions"],"source_commits":["172e6b3ad"],"source_entry_id":"18.0/changes/111","source_hash":"32bda5c343b0e274152cea92bbc66b00d80c0ad61b63250b896faf088627ead4","source_url":"/docs/release/18.0/#RELEASE-18-FUNCTIONS","statement_hash":"3ad41892efe6fea4d12c377eae3bb3908d356da0f989fc2b51e3072b9dcd7439","text":"Add roman numeral support to to_number() (Hunaid Sohail) § This is accessed via the RN pattern.","title":"Add roman numeral support to to_number()","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["78c5e141e"],"commit_groups":[["78c5e141e"]],"commits":["78c5e141e"],"cves":[],"db_id":"cece32c4a51bdf23bee2a0f29962d93d","html":"\u003cp\u003eAdd \u003ca href=\"/docs/18/datatype-uuid.html\" title=\"8.12. UUID Type\"\u003e\u003ccode\u003eUUID\u003c/code\u003e\u003c/a\u003e version 7 generation function \u003ca href=\"/docs/18/functions-uuid.html#FUNC_UUID_GEN_TABLE\" title=\"Table 9.45. UUID Generation Functions\"\u003e\u003ccode\u003euuidv7()\u003c/code\u003e\u003c/a\u003e (Andrey Borodin) \u003ca href=\"https://postgr.es/c/78c5e141e\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis \u003ccode\u003eUUID\u003c/code\u003e value is temporally sortable. Function alias \u003ca href=\"/docs/18/functions-uuid.html#FUNC_UUID_GEN_TABLE\" title=\"Table 9.45. UUID Generation Functions\"\u003e\u003ccode\u003euuidv4()\u003c/code\u003e\u003c/a\u003e has been added to explicitly generate version 4 UUIDs.\u003c/p\u003e","id":"18.0-542d8a8a70b3db3c","identity_text":"Add UUID version 7 generation function uuidv7() (Andrey Borodin) This UUID value is temporally sortable. Function alias uuidv4() has been added to explicitly generate version 4 UUIDs.","part":"changes","patch_ids":["56fa70c05aee3519b8c7f629a11367fa"],"related_changes":[],"relations":[],"section":"Functions","section_path":["Functions"],"source_commits":["78c5e141e"],"source_entry_id":"18.0/changes/112","source_hash":"7877416c8bc1ed72cd83517c7cfa2be9454b995e7c9ecbc06655eb24026b18dd","source_url":"/docs/release/18.0/#RELEASE-18-FUNCTIONS","statement_hash":"e0da520f09f4f2ac133bc0bff5d10a98c32f202b283cfa8927ddc7514e82334d","text":"Add UUID version 7 generation function uuidv7() (Andrey Borodin) § This UUID value is temporally sortable. Function alias uuidv4() has been added to explicitly generate version 4 UUIDs.","title":"Add UUID version 7 generation function uuidv7()","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["760162fed"],"commit_groups":[["760162fed"]],"commits":["760162fed"],"cves":[],"db_id":"4adbc4a880c6d186b573a23b72e25743","html":"\u003cp\u003eAdd functions \u003ca href=\"/docs/18/functions-binarystring.html#FUNCTIONS-BINARYSTRING-OTHER\" title=\"Table 9.12. Other Binary String Functions\"\u003e\u003ccode\u003ecrc32()\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"/docs/18/functions-binarystring.html#FUNCTIONS-BINARYSTRING-OTHER\" title=\"Table 9.12. Other Binary String Functions\"\u003e\u003ccode\u003ecrc32c()\u003c/code\u003e\u003c/a\u003e to compute \u003cacronym\u003eCRC\u003c/acronym\u003e values (Aleksander Alekseev) \u003ca href=\"https://postgr.es/c/760162fed\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-0793591dedbc959b","identity_text":"Add functions crc32() and crc32c() to compute CRC values (Aleksander Alekseev)","part":"changes","patch_ids":["f072ba34fd057475f25240221b644589"],"related_changes":[],"relations":[],"section":"Functions","section_path":["Functions"],"source_commits":["760162fed"],"source_entry_id":"18.0/changes/113","source_hash":"186d4a85f05026c3f1e1b5cedc85be001793dd4387c3846bd784693e34d9df3e","source_url":"/docs/release/18.0/#RELEASE-18-FUNCTIONS","statement_hash":"b7c1fff56676d7a5ea8f068fd55d5c9250a4f76ec60d2244c2e801cfe67c7e03","text":"Add functions crc32() and crc32c() to compute CRC values (Aleksander Alekseev) §","title":"Add functions crc32() and crc32c() to compute CRC values","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["a3b6dfd41"],"commit_groups":[["a3b6dfd41"]],"commits":["a3b6dfd41"],"cves":[],"db_id":"986dd3e980b067ffd2e6eecdfc4befd1","html":"\u003cp\u003eAdd math functions \u003ca href=\"/docs/18/functions-math.html#FUNCTIONS-MATH-FUNC-TABLE\" title=\"Table 9.5. Mathematical Functions\"\u003e\u003ccode\u003egamma()\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"/docs/18/functions-math.html#FUNCTIONS-MATH-FUNC-TABLE\" title=\"Table 9.5. Mathematical Functions\"\u003e\u003ccode\u003elgamma()\u003c/code\u003e\u003c/a\u003e (Dean Rasheed) \u003ca href=\"https://postgr.es/c/a3b6dfd41\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-88be5f9be0b211b5","identity_text":"Add math functions gamma() and lgamma() (Dean Rasheed)","part":"changes","patch_ids":["e0b46f5f41bfa3e2a42c6d003da6b3d5"],"related_changes":[],"relations":[],"section":"Functions","section_path":["Functions"],"source_commits":["a3b6dfd41"],"source_entry_id":"18.0/changes/114","source_hash":"0e6224fe43da67b085f65cee813ae8aad126061d045f1ff177ccd09630b490bd","source_url":"/docs/release/18.0/#RELEASE-18-FUNCTIONS","statement_hash":"6e74c2ea38c261b8bb55b6b1bcd723c5977a27e47fe892c9b2fbb23d25a61bef","text":"Add math functions gamma() and lgamma() (Dean Rasheed) §","title":"Add math functions gamma() and lgamma()","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["246dedc5d"],"commit_groups":[["246dedc5d"]],"commits":["246dedc5d"],"cves":[],"db_id":"a4ea7ded150aaebd8e3d529313e4ff98","html":"\u003cp\u003eAllow \u003ccode\u003e=\u0026gt;\u003c/code\u003e syntax for named cursor arguments in \u003ca href=\"/docs/18/plpgsql.html\" title=\"Chapter 41. PL/pgSQL — SQL Procedural Language\"\u003ePL/pgSQL\u003c/a\u003e (Pavel Stehule) \u003ca href=\"https://postgr.es/c/246dedc5d\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eWe previously only accepted \u003ccode\u003e:=\u003c/code\u003e.\u003c/p\u003e","id":"18.0-d96ba464f44620eb","identity_text":"Allow =\u003e syntax for named cursor arguments in PL/pgSQL (Pavel Stehule) We previously only accepted :=.","part":"changes","patch_ids":["93da3674645c806399e4a7258ccd3d35"],"related_changes":[],"relations":[],"section":"Functions","section_path":["Functions"],"source_commits":["246dedc5d"],"source_entry_id":"18.0/changes/115","source_hash":"0d96d209799c5f086a10c64775cb42339b3d437dcb75d4c0b0d7ca78d9aa678e","source_url":"/docs/release/18.0/#RELEASE-18-FUNCTIONS","statement_hash":"add7c95473de1dd4a0566aaf8254da83d00c65a5719b19d40aa9c92d4001cd1c","text":"Allow =\u003e syntax for named cursor arguments in PL/pgSQL (Pavel Stehule) § We previously only accepted :=.","title":"Allow =\u003e syntax for named cursor arguments in PL/pgSQL","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["580f8727c"],"commit_groups":[["580f8727c"]],"commits":["580f8727c"],"cves":[],"db_id":"325c0a35a7406d298611bb6828289ff0","html":"\u003cp\u003eAllow \u003ca href=\"/docs/18/functions-matching.html#FUNCTIONS-POSIX-REGEXP\" title=\"9.7.3. POSIX Regular Expressions\"\u003e\u003ccode\u003eregexp_match[es]()\u003c/code\u003e\u003c/a\u003e/\u003ca href=\"/docs/18/functions-matching.html#FUNCTIONS-POSIX-REGEXP\" title=\"9.7.3. POSIX Regular Expressions\"\u003e\u003ccode\u003eregexp_like()\u003c/code\u003e\u003c/a\u003e/\u003ca href=\"/docs/18/functions-matching.html#FUNCTIONS-POSIX-REGEXP\" title=\"9.7.3. POSIX Regular Expressions\"\u003e\u003ccode\u003eregexp_replace()\u003c/code\u003e\u003c/a\u003e/\u003ca href=\"/docs/18/functions-matching.html#FUNCTIONS-POSIX-REGEXP\" title=\"9.7.3. POSIX Regular Expressions\"\u003e\u003ccode\u003eregexp_count()\u003c/code\u003e\u003c/a\u003e/\u003ca href=\"/docs/18/functions-matching.html#FUNCTIONS-POSIX-REGEXP\" title=\"9.7.3. POSIX Regular Expressions\"\u003e\u003ccode\u003eregexp_instr()\u003c/code\u003e\u003c/a\u003e/\u003ca href=\"/docs/18/functions-matching.html#FUNCTIONS-POSIX-REGEXP\" title=\"9.7.3. POSIX Regular Expressions\"\u003e\u003ccode\u003eregexp_substr()\u003c/code\u003e\u003c/a\u003e/\u003ca href=\"/docs/18/functions-matching.html#FUNCTIONS-POSIX-REGEXP\" title=\"9.7.3. POSIX Regular Expressions\"\u003e\u003ccode\u003eregexp_split_to_table()\u003c/code\u003e\u003c/a\u003e/\u003ca href=\"/docs/18/functions-matching.html#FUNCTIONS-POSIX-REGEXP\" title=\"9.7.3. POSIX Regular Expressions\"\u003e\u003ccode\u003eregexp_split_to_array()\u003c/code\u003e\u003c/a\u003e to use named arguments (Jian He) \u003ca href=\"https://postgr.es/c/580f8727c\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-0d9be41bbb427c11","identity_text":"Allow regexp_match[es]()/regexp_like()/regexp_replace()/regexp_count()/regexp_instr()/regexp_substr()/regexp_split_to_table()/regexp_split_to_array() to use named arguments (Jian He)","part":"changes","patch_ids":["4e22fed07663f7a3f1934e689acb6eaa"],"related_changes":[],"relations":[],"section":"Functions","section_path":["Functions"],"source_commits":["580f8727c"],"source_entry_id":"18.0/changes/116","source_hash":"537f565df3ddb721db2bfe04fb5165619d5ed54a98e5025bf7ebe2594e7ea5fe","source_url":"/docs/release/18.0/#RELEASE-18-FUNCTIONS","statement_hash":"3d7072f71a631c3271d07df2f0b0325b7ae5f4d8f46ea986b04a57acad9a86a3","text":"Allow regexp_match[es]()/regexp_like()/regexp_replace()/regexp_count()/regexp_instr()/regexp_substr()/regexp_split_to_table()/regexp_split_to_array() to use named arguments (Jian He) §","title":"Allow regexp_match[es]()/regexp_like()/regexp_replace()/regexp_count()/regexp_instr()/regexp_substr()/regexp_split_to_table()/regexp_split_to_array() to use named arguments","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["cdb6b0fdb"],"commit_groups":[["cdb6b0fdb"]],"commits":["cdb6b0fdb"],"cves":[],"db_id":"4b86d214e32c355a269673a5aa3b2558","html":"\u003cp\u003eAdd function \u003ca href=\"/docs/18/libpq-status.html#LIBPQ-PQFULLPROTOCOLVERSION\"\u003e\u003ccode\u003ePQfullProtocolVersion()\u003c/code\u003e\u003c/a\u003e to report the full, including minor, protocol version number (Jacob Champion, Jelte Fennema-Nio) \u003ca href=\"https://postgr.es/c/cdb6b0fdb\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-0c1a57f2ceb09589","identity_text":"Add function PQfullProtocolVersion() to report the full, including minor, protocol version number (Jacob Champion, Jelte Fennema-Nio)","part":"changes","patch_ids":["52abaad7880c01090a771e4447bc86e2"],"related_changes":[],"relations":[],"section":"Libpq","section_path":["Libpq"],"source_commits":["cdb6b0fdb"],"source_entry_id":"18.0/changes/117","source_hash":"4d15532b628660643127aa6505deec0b8d3a38c80917c9354108c3340c1fd166","source_url":"/docs/release/18.0/#RELEASE-18-LIBPQ","statement_hash":"f9bd22e1e8f83bd582c6d52c403e9b0ef03dbbb8144aeb9364fb4e3225d47d07","text":"Add function PQfullProtocolVersion() to report the full, including minor, protocol version number (Jacob Champion, Jelte Fennema-Nio) §","title":"Add function PQfullProtocolVersion() to report the full, including minor, protocol version number","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["285613c60","507034910"],"commit_groups":[["285613c60"],["507034910"]],"commits":["285613c60","507034910"],"cves":[],"db_id":"324ad8ffd0dc73072b6cae1163bbd895","html":"\u003cp\u003eAdd libpq connection \u003ca href=\"/docs/18/libpq-connect.html#LIBPQ-CONNECT-SSL-MAX-PROTOCOL-VERSION\"\u003eparameters\u003c/a\u003e and \u003ca href=\"/docs/18/libpq-envars.html\" title=\"32.15. Environment Variables\"\u003eenvironment variables\u003c/a\u003e to specify the minimum and maximum acceptable protocol version for connections (Jelte Fennema-Nio) \u003ca href=\"https://postgr.es/c/285613c60\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/507034910\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-93af92d9546daff9","identity_text":"Add libpq connection parameters and environment variables to specify the minimum and maximum acceptable protocol version for connections (Jelte Fennema-Nio)","part":"changes","patch_ids":["534b2c53e2e1a92c27d124b03e588165","75729722b6f7aba5cfb305b2f8099d9d"],"related_changes":[],"relations":[],"section":"Libpq","section_path":["Libpq"],"source_commits":["285613c60","507034910"],"source_entry_id":"18.0/changes/118","source_hash":"dd8e24e0798022c5e49d33b8f037eae94f69ab39a4a885b8b176f5e16dbcf97e","source_url":"/docs/release/18.0/#RELEASE-18-LIBPQ","statement_hash":"5bc66e57f7b5710b779499207adb20134778a80ccd962165684afde348719556","text":"Add libpq connection parameters and environment variables to specify the minimum and maximum acceptable protocol version for connections (Jelte Fennema-Nio) § §","title":"Add libpq connection parameters and environment variables to specify the minimum and maximum acceptable protocol version for connections","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["0d06a7eac","28a1121fd"],"commit_groups":[["0d06a7eac"],["28a1121fd"]],"commits":["0d06a7eac","28a1121fd"],"cves":[],"db_id":"218352fe6746ce16b55b280a597a34c3","html":"\u003cp\u003eReport \u003ca href=\"/docs/18/runtime-config-client.html#GUC-SEARCH-PATH\"\u003esearch_path\u003c/a\u003e changes to the client (Alexander Kukushkin, Jelte Fennema-Nio, Tomas Vondra) \u003ca href=\"https://postgr.es/c/28a1121fd\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/0d06a7eac\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-207d234a979be0ba","identity_text":"Report guc-search-path changes to the client (Alexander Kukushkin, Jelte Fennema-Nio, Tomas Vondra)","part":"changes","patch_ids":["5ff7e1b21d24cbfadde9ec259d6a73c7","6773d35e5f3a311c7ff50c9c2faf3885"],"related_changes":[],"relations":[],"section":"Libpq","section_path":["Libpq"],"source_commits":["0d06a7eac","28a1121fd"],"source_entry_id":"18.0/changes/119","source_hash":"1b3b66fd3e804bfd9a8f8eb4900833f7becb2d7ae3e27f57d8450450272b7e24","source_url":"/docs/release/18.0/#RELEASE-18-LIBPQ","statement_hash":"50991c451a4bfb5e106b4ba60fe467da4d2e687a547ce099c82004fbe44fd3e9","text":"Report search_path changes to the client (Alexander Kukushkin, Jelte Fennema-Nio, Tomas Vondra) § §","title":"Report search_path changes to the client","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["7adec2d5f","a5c6b8f22","b8b3f861f","e87c14b19","ea92f3a0a"],"commit_groups":[["7adec2d5f"],["a5c6b8f22"],["b8b3f861f"],["e87c14b19"],["ea92f3a0a"]],"commits":["7adec2d5f","a5c6b8f22","b8b3f861f","e87c14b19","ea92f3a0a"],"cves":[],"db_id":"189544d0fbeb310833d8101ad81be81d","html":"\u003cp\u003eAdd \u003ca href=\"/docs/18/libpq-control.html#LIBPQ-PQTRACE\"\u003e\u003ccode\u003ePQtrace()\u003c/code\u003e\u003c/a\u003e output for all message types, including authentication (Jelte Fennema-Nio) \u003ca href=\"https://postgr.es/c/ea92f3a0a\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/a5c6b8f22\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/b8b3f861f\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/e87c14b19\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/7adec2d5f\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-beeeaad682b3e543","identity_text":"Add PQtrace() output for all message types, including authentication (Jelte Fennema-Nio)","part":"changes","patch_ids":["7830574fda35c2cd540f06ea5cd22fe7","acc865fe8e046c03d36dbaf9deafa10e","dccfa75590b5f88a141ec68c6abef022","ef0fcd62d83e5a9752310ce62aa470d2","f1361c9f5c56a8086363704e63d70cd9"],"related_changes":[],"relations":[],"section":"Libpq","section_path":["Libpq"],"source_commits":["7adec2d5f","a5c6b8f22","b8b3f861f","e87c14b19","ea92f3a0a"],"source_entry_id":"18.0/changes/120","source_hash":"229bf64e1d8e766cd4a7b64992dd7057c31c49ee08a766d973f0fed3a3136264","source_url":"/docs/release/18.0/#RELEASE-18-LIBPQ","statement_hash":"c5e10674404ba12ef5a21f94c4df6e89c062cf8daae10222475b36a39dda6485","text":"Add PQtrace() output for all message types, including authentication (Jelte Fennema-Nio) § § § § §","title":"Add PQtrace() output for all message types, including authentication","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["2da74d8d6"],"commit_groups":[["2da74d8d6"]],"commits":["2da74d8d6"],"cves":[],"db_id":"dec95e8329f62b657fc15ccfb7d006fb","html":"\u003cp\u003eAdd libpq connection parameter \u003ca href=\"/docs/18/libpq-connect.html#LIBPQ-CONNECT-SSLKEYLOGFILE\"\u003e\u003ccode\u003esslkeylogfile\u003c/code\u003e\u003c/a\u003e which dumps out \u003cacronym\u003eSSL\u003c/acronym\u003e key material (Abhishek Chanda, Daniel Gustafsson) \u003ca href=\"https://postgr.es/c/2da74d8d6\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is useful for debugging.\u003c/p\u003e","id":"18.0-ef7c9ed7c8f229dc","identity_text":"Add libpq connection parameter sslkeylogfile which dumps out SSL key material (Abhishek Chanda, Daniel Gustafsson) This is useful for debugging.","part":"changes","patch_ids":["5c9abb135b2e6fb82671370102be25d3"],"related_changes":[],"relations":[],"section":"Libpq","section_path":["Libpq"],"source_commits":["2da74d8d6"],"source_entry_id":"18.0/changes/121","source_hash":"8a53c283c907184c5c28dc8b1a80814c955c04574c96f11e2d4b6d6ad07852f9","source_url":"/docs/release/18.0/#RELEASE-18-LIBPQ","statement_hash":"0cbbb246f331bdcf188172740da0fa02fe152d60204197e426ec23a6c89278c5","text":"Add libpq connection parameter sslkeylogfile which dumps out SSL key material (Abhishek Chanda, Daniel Gustafsson) § This is useful for debugging.","title":"Add libpq connection parameter sslkeylogfile which dumps out SSL key material","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["3c86223c9"],"commit_groups":[["3c86223c9"]],"commits":["3c86223c9"],"cves":[],"db_id":"caaca0ad82471ba571571208f6771f02","html":"\u003cp\u003eModify some libpq function signatures to use \u003ccode\u003eint64_t\u003c/code\u003e (Thomas Munro) \u003ca href=\"https://postgr.es/c/3c86223c9\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThese previously used \u003ccode\u003epg_int64\u003c/code\u003e, which is now deprecated.\u003c/p\u003e","id":"18.0-f56e310a693fee70","identity_text":"Modify some libpq function signatures to use int64_t (Thomas Munro) These previously used pg_int64, which is now deprecated.","part":"changes","patch_ids":["a9a13dc006668f08f5abd06bcf09cb8e"],"related_changes":[],"relations":[],"section":"Libpq","section_path":["Libpq"],"source_commits":["3c86223c9"],"source_entry_id":"18.0/changes/122","source_hash":"10b871bad097417a99cafa49cc3d5d1c211c6de4e2bf8386fbbde08d3facb504","source_url":"/docs/release/18.0/#RELEASE-18-LIBPQ","statement_hash":"325b9ac281e658a1f6acd0aaae59a7c20882f4f76754cbd9cd6c886266e8b478","text":"Modify some libpq function signatures to use int64_t (Thomas Munro) § These previously used pg_int64, which is now deprecated.","title":"Modify some libpq function signatures to use int64_t","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["d55322b0d","fc39b286a"],"commit_groups":[["d55322b0d"],["fc39b286a"]],"commits":["d55322b0d","fc39b286a"],"cves":[],"db_id":"f1f07070c0f9905a1dadadaf792aeb8f","html":"\u003cp\u003eAllow \u003cspan\u003epsql\u003c/span\u003e to parse, bind, and close named prepared statements (Anthonin Bonnefoy, Michael Paquier) \u003ca href=\"https://postgr.es/c/d55322b0d\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/fc39b286a\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is accomplished with new commands \u003ca href=\"/docs/18/app-psql.html#APP-PSQL-META-COMMAND-PARSE\"\u003e\u003ccode\u003e\\parse\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"/docs/18/app-psql.html#APP-PSQL-META-COMMAND-BIND-NAMED\"\u003e\u003ccode\u003e\\bind_named\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"/docs/18/app-psql.html#APP-PSQL-META-COMMAND-CLOSE-PREPARED\"\u003e\u003ccode\u003e\\close_prepared\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e","id":"18.0-2fb6e0f0c8f9dca8","identity_text":"Allow psql to parse, bind, and close named prepared statements (Anthonin Bonnefoy, Michael Paquier) This is accomplished with new commands \\parse, \\bind_named, and \\close_prepared.","part":"changes","patch_ids":["c1a58c5c685a3ecbf2a745226578758a","df70e0fc8c75d8b781d59c4c9c988dc2"],"related_changes":[],"relations":[],"section":"psql","section_path":["psql"],"source_commits":["d55322b0d","fc39b286a"],"source_entry_id":"18.0/changes/123","source_hash":"77c05c6a0c7eefaa3828f25811f82a7b7e8197f14e6b0b3ca40906780cc67c8a","source_url":"/docs/release/18.0/#RELEASE-18-PSQL","statement_hash":"d69eda95d2e3f3d9d78e8def9469297aa5914f6c8b5405798b94e5847ef4218e","text":"Allow psql to parse, bind, and close named prepared statements (Anthonin Bonnefoy, Michael Paquier) § § This is accomplished with new commands \\parse, \\bind_named, and \\close_prepared.","title":"Allow psql to parse, bind, and close named prepared statements","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["17caf6644","2cce0fe44","41625ab8e"],"commit_groups":[["17caf6644"],["2cce0fe44"],["41625ab8e"]],"commits":["17caf6644","2cce0fe44","41625ab8e"],"cves":[],"db_id":"4d5f486511455c18c068b6488465fe4d","html":"\u003cp\u003eAdd \u003cspan\u003epsql\u003c/span\u003e backslash commands to allowing issuance of pipeline queries (Anthonin Bonnefoy) \u003ca href=\"https://postgr.es/c/41625ab8e\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/17caf6644\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/2cce0fe44\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe new commands are \u003ca href=\"/docs/18/app-psql.html#APP-PSQL-META-COMMAND-PIPELINE\"\u003e\u003ccode\u003e\\startpipeline\u003c/code\u003e\u003c/a\u003e, \u003ccode\u003e\\syncpipeline\u003c/code\u003e, \u003ccode\u003e\\sendpipeline\u003c/code\u003e, \u003ccode\u003e\\endpipeline\u003c/code\u003e, \u003ccode\u003e\\flushrequest\u003c/code\u003e, \u003ccode\u003e\\flush\u003c/code\u003e, and \u003ccode\u003e\\getresults\u003c/code\u003e.\u003c/p\u003e","id":"18.0-6aeeef1ea176f829","identity_text":"Add psql backslash commands to allowing issuance of pipeline queries (Anthonin Bonnefoy) The new commands are \\startpipeline, \\syncpipeline, \\sendpipeline, \\endpipeline, \\flushrequest, \\flush, and \\getresults.","part":"changes","patch_ids":["35ac484ccee3ad9012651c9ebb417256","70e78ced9a8ba8366255b2db649c9893","df86acd976c7a1bed1bc2ab4cb1192c0"],"related_changes":[],"relations":[],"section":"psql","section_path":["psql"],"source_commits":["17caf6644","2cce0fe44","41625ab8e"],"source_entry_id":"18.0/changes/124","source_hash":"065c75020e0a2e7dcbb2190d382fe267753aec2fed22e926ae12b843cc277e62","source_url":"/docs/release/18.0/#RELEASE-18-PSQL","statement_hash":"7a3ae596d3038107a6c2878a16eef9d8d6e31e6830e8ad4070210e11705433d7","text":"Add psql backslash commands to allowing issuance of pipeline queries (Anthonin Bonnefoy) § § § The new commands are \\startpipeline, \\syncpipeline, \\sendpipeline, \\endpipeline, \\flushrequest, \\flush, and \\getresults.","title":"Add psql backslash commands to allowing issuance of pipeline queries","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["3ce357584"],"commit_groups":[["3ce357584"]],"commits":["3ce357584"],"cves":[],"db_id":"95d64c85bbb64cccbeaed6eff0e1a423","html":"\u003cp\u003eAllow adding pipeline status to the \u003cspan\u003epsql\u003c/span\u003e prompt and add related state variables (Anthonin Bonnefoy) \u003ca href=\"https://postgr.es/c/3ce357584\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe new prompt character is \u003ccode\u003e%P\u003c/code\u003e and the new \u003cspan\u003epsql\u003c/span\u003e variables are \u003ca href=\"/docs/18/app-psql.html#APP-PSQL-VARIABLES-PIPELINE-SYNC-COUNT\"\u003e\u003ccode\u003ePIPELINE_SYNC_COUNT\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"/docs/18/app-psql.html#APP-PSQL-VARIABLES-PIPELINE-COMMAND-COUNT\"\u003e\u003ccode\u003ePIPELINE_COMMAND_COUNT\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"/docs/18/app-psql.html#APP-PSQL-VARIABLES-PIPELINE-RESULT-COUNT\"\u003e\u003ccode\u003ePIPELINE_RESULT_COUNT\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e","id":"18.0-02580f08fbaf6131","identity_text":"Allow adding pipeline status to the psql prompt and add related state variables (Anthonin Bonnefoy) The new prompt character is %P and the new psql variables are PIPELINE_SYNC_COUNT, PIPELINE_COMMAND_COUNT, and PIPELINE_RESULT_COUNT.","part":"changes","patch_ids":["062ee32471ba9950e13d9460b1c630ed"],"related_changes":[],"relations":[],"section":"psql","section_path":["psql"],"source_commits":["3ce357584"],"source_entry_id":"18.0/changes/125","source_hash":"ca4d56dd83a7e4b6224510acf54f1d3175534f96e58fb840e6f282c967477b87","source_url":"/docs/release/18.0/#RELEASE-18-PSQL","statement_hash":"342de8131124813468934a1a6a5b420c312c79e1aba97898e6a94db6850a206c","text":"Allow adding pipeline status to the psql prompt and add related state variables (Anthonin Bonnefoy) § The new prompt character is %P and the new psql variables are PIPELINE_SYNC_COUNT, PIPELINE_COMMAND_COUNT, and PIPELINE_RESULT_COUNT.","title":"Allow adding pipeline status to the psql prompt and add related state variables","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["477728b5d"],"commit_groups":[["477728b5d"]],"commits":["477728b5d"],"cves":[],"db_id":"b448890a42701668cc28db2c98fe65af","html":"\u003cp\u003eAllow adding the connection service name to the \u003cspan\u003epsql\u003c/span\u003e prompt or access it via \u003cspan\u003epsql\u003c/span\u003e variable (Michael Banck) \u003ca href=\"https://postgr.es/c/477728b5d\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-997c75493a7de85c","identity_text":"Allow adding the connection service name to the psql prompt or access it via psql variable (Michael Banck)","part":"changes","patch_ids":["8bc6eb53f480b1773dba3d9ca6fa27ef"],"related_changes":[],"relations":[],"section":"psql","section_path":["psql"],"source_commits":["477728b5d"],"source_entry_id":"18.0/changes/126","source_hash":"d708d70528e3a3f746395fa23b8324b7dfe19e3fa2560f0d3fb61d86a8f4af8b","source_url":"/docs/release/18.0/#RELEASE-18-PSQL","statement_hash":"b7b84052ccad3b3cdd4e58fd81d7e92d01dcd30e03a638017f02df36fe51481c","text":"Allow adding the connection service name to the psql prompt or access it via psql variable (Michael Banck) §","title":"Allow adding the connection service name to the psql prompt or access it via psql variable","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["00f4c2959"],"commit_groups":[["00f4c2959"]],"commits":["00f4c2959"],"cves":[],"db_id":"5dd3f4378c9385065373f9512386183d","html":"\u003cp\u003eAdd \u003cspan\u003epsql\u003c/span\u003e option to use expanded mode on all list commands (Dean Rasheed) \u003ca href=\"https://postgr.es/c/00f4c2959\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eAdding backslash suffix \u003ccode\u003ex\u003c/code\u003e enables this.\u003c/p\u003e","id":"18.0-b431886faffda5ff","identity_text":"Add psql option to use expanded mode on all list commands (Dean Rasheed) Adding backslash suffix x enables this.","part":"changes","patch_ids":["2a6f4ded65d281267015b5b6cc939f54"],"related_changes":[],"relations":[],"section":"psql","section_path":["psql"],"source_commits":["00f4c2959"],"source_entry_id":"18.0/changes/127","source_hash":"c295ed9ac299dc91d03e266119cfa5c422c1056a964c2bf9bb936427b8c2d1a3","source_url":"/docs/release/18.0/#RELEASE-18-PSQL","statement_hash":"67f72ef9ab6c8e1c087e265379fba0355acb6aaf4ebf846ec3f223d08f73af6e","text":"Add psql option to use expanded mode on all list commands (Dean Rasheed) § Adding backslash suffix x enables this.","title":"Add psql option to use expanded mode on all list commands","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["bba2fbc62"],"commit_groups":[["bba2fbc62"]],"commits":["bba2fbc62"],"cves":[],"db_id":"b7756586e365c7157c475c0430299268","html":"\u003cp\u003eChange \u003cspan\u003epsql\u003c/span\u003e's \u003ca href=\"/docs/18/app-psql.html#APP-PSQL-META-COMMAND-CONNINFO\"\u003e\u003ccode\u003e\\conninfo\u003c/code\u003e\u003c/a\u003e to use tabular format and include more information (Álvaro Herrera, Maiquel Grassi, Hunaid Sohail) \u003ca href=\"https://postgr.es/c/bba2fbc62\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-8984d4a06e8e1c29","identity_text":"Change psql's app-psql-meta-command-conninfo to use tabular format and include more information (Álvaro Herrera, Maiquel Grassi, Hunaid Sohail)","part":"changes","patch_ids":["8d29126a5a016ba3aa3ac63ed17eed9e"],"related_changes":[],"relations":[],"section":"psql","section_path":["psql"],"source_commits":["bba2fbc62"],"source_entry_id":"18.0/changes/128","source_hash":"f50ab465a0ba201803a8cb40aac06c8f854c661fbc6959a15809b50060959f8c","source_url":"/docs/release/18.0/#RELEASE-18-PSQL","statement_hash":"587565e7970af826aba72167bdd2c90fa3ad561d7bdffc95a3fdf5db3e7a9af2","text":"Change psql's \\conninfo to use tabular format and include more information (Álvaro Herrera, Maiquel Grassi, Hunaid Sohail) §","title":"Change psql's \\conninfo to use tabular format and include more information","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["2355e5111"],"commit_groups":[["2355e5111"]],"commits":["2355e5111"],"cves":[],"db_id":"9d578cae753a7068d3a2429369a138e4","html":"\u003cp\u003eAdd function's leakproof indicator to \u003cspan\u003epsql\u003c/span\u003e's \u003ca href=\"/docs/18/app-psql.html#APP-PSQL-META-COMMAND-DF-LC\"\u003e\u003ccode\u003e\\df+\u003c/code\u003e\u003c/a\u003e, \u003ccode\u003e\\do+\u003c/code\u003e, \u003ccode\u003e\\dAo+\u003c/code\u003e, and \u003ccode\u003e\\dC+\u003c/code\u003e outputs (Yugo Nagata) \u003ca href=\"https://postgr.es/c/2355e5111\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-624508557749474f","identity_text":"Add function's leakproof indicator to psql's \\df+, \\do+, \\dAo+, and \\dC+ outputs (Yugo Nagata)","part":"changes","patch_ids":["4ee947bb08aead676fe72b63526cdd39"],"related_changes":[],"relations":[],"section":"psql","section_path":["psql"],"source_commits":["2355e5111"],"source_entry_id":"18.0/changes/129","source_hash":"b8a6c1bf50c01dfea7e893090f16b02f8a9b074d135f06979cf7e11861937d9b","source_url":"/docs/release/18.0/#RELEASE-18-PSQL","statement_hash":"b7ecafc8df9220ee7d63778ed0ac8ad0e28546694bb5fdbba0ac97017dfbb54d","text":"Add function's leakproof indicator to psql's \\df+, \\do+, \\dAo+, and \\dC+ outputs (Yugo Nagata) §","title":"Add function's leakproof indicator to psql's \\df+, \\do+, \\dAo+, and \\dC+ outputs","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["978f38c77"],"commit_groups":[["978f38c77"]],"commits":["978f38c77"],"cves":[],"db_id":"818c7f68713a76e08678870d759f6291","html":"\u003cp\u003eAdd access method details for partitioned relations in \u003ca href=\"/docs/18/app-psql.html#APP-PSQL-META-COMMAND-DP-UC\"\u003e\u003ccode\u003e\\dP+\u003c/code\u003e\u003c/a\u003e (Justin Pryzby) \u003ca href=\"https://postgr.es/c/978f38c77\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-1dea4d8870fe7263","identity_text":"Add access method details for partitioned relations in \\dP+ (Justin Pryzby)","part":"changes","patch_ids":["7cca4f5d69bc8dc6d2b6ccbaa33d8e79"],"related_changes":[],"relations":[],"section":"psql","section_path":["psql"],"source_commits":["978f38c77"],"source_entry_id":"18.0/changes/130","source_hash":"513f2fab8dea574eba77472892d2f8de48560874d9a7182acc43f2b25404614a","source_url":"/docs/release/18.0/#RELEASE-18-PSQL","statement_hash":"3ab40daca3f13039aba595247e60f46d4f6453febeb29ab79a875c6f98986293","text":"Add access method details for partitioned relations in \\dP+ (Justin Pryzby) §","title":"Add access method details for partitioned relations in \\dP+","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["d696406a9"],"commit_groups":[["d696406a9"]],"commits":["d696406a9"],"cves":[],"db_id":"8b0be23bf885cc5302c60d810f5e5d17","html":"\u003cp\u003eAdd \u003ccode\u003edefault_version\u003c/code\u003e to the \u003cspan\u003epsql\u003c/span\u003e \u003ca href=\"/docs/18/app-psql.html#APP-PSQL-META-COMMAND-DX-LC\"\u003e\u003ccode\u003e\\dx\u003c/code\u003e\u003c/a\u003e extension output (Magnus Hagander) \u003ca href=\"https://postgr.es/c/d696406a9\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-545b1beb3150fb2a","identity_text":"Add default_version to the psql \\dx extension output (Magnus Hagander)","part":"changes","patch_ids":["a177f1929edb0edaa402f9aa8c4dc5b1"],"related_changes":[],"relations":[],"section":"psql","section_path":["psql"],"source_commits":["d696406a9"],"source_entry_id":"18.0/changes/131","source_hash":"f45ef00d2add84d90c55cbbc7e9938ca51f52bbcc6c24082fda3375e868a6ff4","source_url":"/docs/release/18.0/#RELEASE-18-PSQL","statement_hash":"97eb7c8a5e03d2311600a2472cb9936526e73dfb492e20a800a6b6068c604820","text":"Add default_version to the psql \\dx extension output (Magnus Hagander) §","title":"Add default_version to the psql \\dx extension output","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["1a759c832"],"commit_groups":[["1a759c832"]],"commits":["1a759c832"],"cves":[],"db_id":"fb9188646ca6019ee7d68115e98063b7","html":"\u003cp\u003eAdd \u003cspan\u003epsql\u003c/span\u003e variable \u003ca href=\"/docs/18/app-psql.html#APP-PSQL-VARIABLES-WATCH-INTERVAL\"\u003e\u003ccode\u003eWATCH_INTERVAL\u003c/code\u003e\u003c/a\u003e to set the default \u003ca href=\"/docs/18/app-psql.html#APP-PSQL-META-COMMAND-WATCH\"\u003e\u003ccode\u003e\\watch\u003c/code\u003e\u003c/a\u003e wait time (Daniel Gustafsson) \u003ca href=\"https://postgr.es/c/1a759c832\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-dc2d98bde772ded1","identity_text":"Add psql variable app-psql-variables-watch-interval to set the default \\watch wait time (Daniel Gustafsson)","part":"changes","patch_ids":["f4150999ddde237444a665e7664bb364"],"related_changes":[],"relations":[],"section":"psql","section_path":["psql"],"source_commits":["1a759c832"],"source_entry_id":"18.0/changes/132","source_hash":"32dbe7ae008210a57ddbd29b951551fca0c360487d239b82a521420aff9d9aca","source_url":"/docs/release/18.0/#RELEASE-18-PSQL","statement_hash":"e31ae7e017e542c379f3fad9f44583ecacf3b7e2e1c7156a171e1ba5b89e91cd","text":"Add psql variable WATCH_INTERVAL to set the default \\watch wait time (Daniel Gustafsson) §","title":"Add psql variable WATCH_INTERVAL to set the default \\watch wait time","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["04bec894a","983a588e0"],"commit_groups":[["04bec894a"],["983a588e0"]],"commits":["04bec894a","983a588e0"],"cves":[],"db_id":"db70c584fb64d9f59231adb14744b4a2","html":"\u003cp\u003eChange \u003ca href=\"/docs/18/app-initdb.html\" title=\"initdb\"\u003e\u003cspan\u003e\u003cspan\u003einitdb\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e to default to enabling checksums (Greg Sabino Mullane) \u003ca href=\"https://postgr.es/c/983a588e0\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/04bec894a\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe new \u003cspan\u003einitdb\u003c/span\u003e option \u003ccode\u003e--no-data-checksums\u003c/code\u003e disables checksums.\u003c/p\u003e","id":"18.0-d9b49042b8f09224","identity_text":"Change app-initdb to default to enabling checksums (Greg Sabino Mullane) The new initdb option --no-data-checksums disables checksums.","part":"changes","patch_ids":["2f0b053af829369c3e773971e514dfc9","f78286ddb1f2e6833c76c4a8351542bf"],"related_changes":[{"db_id":"f3c7465886914cc33d3dae8014f0ac38","evidence":{"patch_ids":["f78286ddb1f2e6833c76c4a8351542bf"],"same_day":true},"kind":"related","label":"18.0","source_url":"/docs/release/18.0/#RELEASE-18-MIGRATION","title":"Change initdb default to enable data checksums","url":"/docs/compare/?release=18.0#18.0-a8fa82432892119f","version":"18.0"}],"relations":[{"evidence":{"patch_ids":["f78286ddb1f2e6833c76c4a8351542bf"],"same_day":true},"rule":2,"target":"f3c7465886914cc33d3dae8014f0ac38","type":"related"}],"section":"Server Applications","section_path":["Server Applications"],"source_commits":["04bec894a","983a588e0"],"source_entry_id":"18.0/changes/133","source_hash":"f8f34e3e2ad1f1316678e49b712c445e3ddd519b898c474e581fdfa668983b8c","source_url":"/docs/release/18.0/#RELEASE-18-SERVER-APPS","statement_hash":"a04cf4bcb0a1f1804333415522f466bd804eca240f36149cdbd72bcb10c51e82","text":"Change initdb to default to enabling checksums (Greg Sabino Mullane) § § The new initdb option --no-data-checksums disables checksums.","title":"Change initdb to default to enabling checksums","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["cf131fa94"],"commit_groups":[["cf131fa94"]],"commits":["cf131fa94"],"cves":[],"db_id":"9952d39dc06228d3a10d17bc3b5169fe","html":"\u003cp\u003eAdd \u003cspan\u003einitdb\u003c/span\u003e option \u003ccode\u003e--no-sync-data-files\u003c/code\u003e to avoid syncing heap/index files (Nathan Bossart) \u003ca href=\"https://postgr.es/c/cf131fa94\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cspan\u003einitdb\u003c/span\u003e option \u003ccode\u003e--no-sync\u003c/code\u003e is still available to avoid syncing any files.\u003c/p\u003e","id":"18.0-3aa4f5ae30376479","identity_text":"Add initdb option --no-sync-data-files to avoid syncing heap/index files (Nathan Bossart) initdb option --no-sync is still available to avoid syncing any files.","part":"changes","patch_ids":["4e1d69b6c246228bc290d1f93422d624"],"related_changes":[],"relations":[],"section":"Server Applications","section_path":["Server Applications"],"source_commits":["cf131fa94"],"source_entry_id":"18.0/changes/134","source_hash":"75c8f0bdfad04f0d23cb26c70c1ac8035b373f8861476b487902137fb7226355","source_url":"/docs/release/18.0/#RELEASE-18-SERVER-APPS","statement_hash":"7713e4c4118e732a811941c3e11d09cec1b024f960b3b7998b6b19a60f3f83ca","text":"Add initdb option --no-sync-data-files to avoid syncing heap/index files (Nathan Bossart) § initdb option --no-sync is still available to avoid syncing any files.","title":"Add initdb option --no-sync-data-files to avoid syncing heap/index files","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["987910502","edba754f0"],"commit_groups":[["987910502"],["edba754f0"]],"commits":["987910502","edba754f0"],"cves":[],"db_id":"853076317df1e045ebd45b56522f230a","html":"\u003cp\u003eAdd \u003ca href=\"/docs/18/app-vacuumdb.html\" title=\"vacuumdb\"\u003e\u003cspan\u003e\u003cspan\u003evacuumdb\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e option \u003ccode\u003e--missing-stats-only\u003c/code\u003e to compute only missing optimizer statistics (Corey Huinker, Nathan Bossart) \u003ca href=\"https://postgr.es/c/edba754f0\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/987910502\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis option can only be run by superusers and can only be used with options \u003ccode\u003e--analyze-only\u003c/code\u003e and \u003ccode\u003e--analyze-in-stages\u003c/code\u003e.\u003c/p\u003e","id":"18.0-7e9d4c0fc2dfb35a","identity_text":"Add app-vacuumdb option --missing-stats-only to compute only missing optimizer statistics (Corey Huinker, Nathan Bossart) This option can only be run by superusers and can only be used with options --analyze-only and --analyze-in-stages.","part":"changes","patch_ids":["067aff8cba670576fe0c3fd89d649257","b94a1cae6980cfb5f7ef4424d00fcb6a"],"related_changes":[],"relations":[],"section":"Server Applications","section_path":["Server Applications"],"source_commits":["987910502","edba754f0"],"source_entry_id":"18.0/changes/135","source_hash":"1199d1c1b8dd6304d46f2f0be670b1746b4d32ede3679f66ba9258fcc89c8330","source_url":"/docs/release/18.0/#RELEASE-18-SERVER-APPS","statement_hash":"5385ca51a2d01858906e995b4406bf1ef97d31883665cc58aae33e348c5b9490","text":"Add vacuumdb option --missing-stats-only to compute only missing optimizer statistics (Corey Huinker, Nathan Bossart) § § This option can only be run by superusers and can only be used with options --analyze-only and --analyze-in-stages.","title":"Add vacuumdb option --missing-stats-only to compute only missing optimizer statistics","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["99aeb8470"],"commit_groups":[["99aeb8470"]],"commits":["99aeb8470"],"cves":[],"db_id":"cbac9921cfb2186e54629d635e3729f3","html":"\u003cp\u003eAdd \u003ca href=\"/docs/18/app-pgcombinebackup.html\" title=\"pg_combinebackup\"\u003e\u003cspan\u003e\u003cspan\u003epg_combinebackup\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e option \u003ccode\u003e-k\u003c/code\u003e/\u003ccode\u003e--link\u003c/code\u003e to enable hard linking (Israel Barth Rubio, Robert Haas) \u003ca href=\"https://postgr.es/c/99aeb8470\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eOnly some files can be hard linked. This should not be used if the backups will be used independently.\u003c/p\u003e","id":"18.0-d07e626cfc87cc2d","identity_text":"Add app-pgcombinebackup option -k/--link to enable hard linking (Israel Barth Rubio, Robert Haas) Only some files can be hard linked. This should not be used if the backups will be used independently.","part":"changes","patch_ids":["b2774e6278fb43524469fa415bf7c504"],"related_changes":[],"relations":[],"section":"Server Applications","section_path":["Server Applications"],"source_commits":["99aeb8470"],"source_entry_id":"18.0/changes/136","source_hash":"eefef01cb696f44d91b49f7817d447e5f2b2aeac8ca97a0513d80a36ce3eab22","source_url":"/docs/release/18.0/#RELEASE-18-SERVER-APPS","statement_hash":"5736af1019c3d5e2bd2ae443e4a9261637afca5e0e0ff655d599e24adaf4ea01","text":"Add pg_combinebackup option -k/--link to enable hard linking (Israel Barth Rubio, Robert Haas) § Only some files can be hard linked. This should not be used if the backups will be used independently.","title":"Add pg_combinebackup option -k/--link to enable hard linking","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["8dfd31290"],"commit_groups":[["8dfd31290"]],"commits":["8dfd31290"],"cves":[],"db_id":"4a31265bb9d301899f61cbb72dc938fe","html":"\u003cp\u003eAllow \u003ca href=\"/docs/18/app-pgverifybackup.html\" title=\"pg_verifybackup\"\u003e\u003cspan\u003e\u003cspan\u003epg_verifybackup\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e to verify tar-format backups (Amul Sul) \u003ca href=\"https://postgr.es/c/8dfd31290\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-75fede038d668a8d","identity_text":"Allow app-pgverifybackup to verify tar-format backups (Amul Sul)","part":"changes","patch_ids":["f61db0ff36a5aaba1fefc4551593c41a"],"related_changes":[],"relations":[],"section":"Server Applications","section_path":["Server Applications"],"source_commits":["8dfd31290"],"source_entry_id":"18.0/changes/137","source_hash":"e2b0d86a1a6fe34a3eaef7656a3093c8fef2bcf4bb4045b3b394c42b6e595297","source_url":"/docs/release/18.0/#RELEASE-18-SERVER-APPS","statement_hash":"033fcbd8882efc5f140f40a57fd1009957f6354e0fff3b3c07f05be1d2c1ce01","text":"Allow pg_verifybackup to verify tar-format backups (Amul Sul) §","title":"Allow pg_verifybackup to verify tar-format backups","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["4ecdd4110"],"commit_groups":[["4ecdd4110"]],"commits":["4ecdd4110"],"cves":[],"db_id":"31e83eaf955dc5094a8982493afd63f3","html":"\u003cp\u003eIf \u003ca href=\"/docs/18/app-pgrewind.html\" title=\"pg_rewind\"\u003e\u003cspan\u003e\u003cspan\u003epg_rewind\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e's \u003ccode\u003e--source-server\u003c/code\u003e specifies a database name, use it in \u003ccode\u003e--write-recovery-conf\u003c/code\u003e output (Masahiko Sawada) \u003ca href=\"https://postgr.es/c/4ecdd4110\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-f775ed91253ae2a7","identity_text":"If app-pgrewind 's --source-server specifies a database name, use it in --write-recovery-conf output (Masahiko Sawada)","part":"changes","patch_ids":["422026f71813c5ab788723a75cfa5fd6"],"related_changes":[],"relations":[],"section":"Server Applications","section_path":["Server Applications"],"source_commits":["4ecdd4110"],"source_entry_id":"18.0/changes/138","source_hash":"b8e56e6ae6588f2cb4df8056eac8508fcaa1a7d5c2bed9b03e0c9c7c3fa92317","source_url":"/docs/release/18.0/#RELEASE-18-SERVER-APPS","statement_hash":"85b876a7486c3a65c5a92598f9e9b5dad71b32bdd0c7932389bfbfb0fdef6adc","text":"If pg_rewind's --source-server specifies a database name, use it in --write-recovery-conf output (Masahiko Sawada) §","title":"If pg_rewind's --source-server specifies a database name, use it in --write-recovery-conf output","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["30666d185"],"commit_groups":[["30666d185"]],"commits":["30666d185"],"cves":[],"db_id":"de60efb8b41468fb0459eaacd7e58849","html":"\u003cp\u003eAdd \u003ca href=\"/docs/18/app-pgresetwal.html\" title=\"pg_resetwal\"\u003e\u003cspan\u003e\u003cspan\u003epg_resetwal\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e option \u003ccode\u003e--char-signedness\u003c/code\u003e to change the default \u003ccode\u003echar\u003c/code\u003e signedness (Masahiko Sawada) \u003ca href=\"https://postgr.es/c/30666d185\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-915172048ef89595","identity_text":"Add app-pgresetwal option --char-signedness to change the default char signedness (Masahiko Sawada)","part":"changes","patch_ids":["5f6d5be1745e81fcdc6e9b19df0c805d"],"related_changes":[],"relations":[],"section":"Server Applications","section_path":["Server Applications"],"source_commits":["30666d185"],"source_entry_id":"18.0/changes/139","source_hash":"1109968f9e43b45953a526f184648d85db28b47d688f491e1bf329b1223e6a82","source_url":"/docs/release/18.0/#RELEASE-18-SERVER-APPS","statement_hash":"2e2828b91010abfb7434c834860be467a228d211bd371f7f730efd531fd3e713","text":"Add pg_resetwal option --char-signedness to change the default char signedness (Masahiko Sawada) §","title":"Add pg_resetwal option --char-signedness to change the default char signedness","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["a3e8dc143","bde2fb797"],"commit_groups":[["a3e8dc143"],["bde2fb797"]],"commits":["a3e8dc143","bde2fb797"],"cves":[],"db_id":"45377d9a7cbb5f6d8a91743818fe9f95","html":"\u003cp\u003eAdd \u003ca href=\"/docs/18/app-pgdump.html\" title=\"pg_dump\"\u003e\u003cspan\u003e\u003cspan\u003epg_dump\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e option \u003ccode\u003e--statistics\u003c/code\u003e (Jeff Davis) \u003ca href=\"https://postgr.es/c/bde2fb797\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/a3e8dc143\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-9b8052d9682b1054","identity_text":"Add app-pgdump option --statistics (Jeff Davis)","part":"changes","patch_ids":["0b036a7b9a6fe69f0ae3fc14f07f890e","3403ebf99c25408505f5bbc915ea6a92"],"related_changes":[],"relations":[],"section":"Server Applications / pg_dump/pg_dumpall/pg_restore","section_path":["Server Applications","pg_dump/pg_dumpall/pg_restore"],"source_commits":["a3e8dc143","bde2fb797"],"source_entry_id":"18.0/changes/140","source_hash":"2d3d93b82ef664b1f0244b7e43fe05588854ab0ca7c11011f7a607d3ee6c90d6","source_url":"/docs/release/18.0/#RELEASE-18-PGDUMP","statement_hash":"d940022b9100e359cdd29574a6c0b6d758a89af40770a693ddc3a5b2232c1974","text":"Add pg_dump option --statistics (Jeff Davis) § §","title":"Add pg_dump option --statistics","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["9c49f0e8c","acea3fc49"],"commit_groups":[["9c49f0e8c"],["acea3fc49"]],"commits":["9c49f0e8c","acea3fc49"],"cves":[],"db_id":"57dfabc21cb09eee80237e7dbdeb4cfd","html":"\u003cp\u003eAdd \u003cspan\u003epg_dump\u003c/span\u003e and \u003ca href=\"/docs/18/app-pg-dumpall.html\" title=\"pg_dumpall\"\u003e\u003cspan\u003e\u003cspan\u003epg_dumpall\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e option \u003ccode\u003e--sequence-data\u003c/code\u003e to dump sequence data that would normally be excluded (Nathan Bossart) \u003ca href=\"https://postgr.es/c/9c49f0e8c\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/acea3fc49\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-2543385556630458","identity_text":"Add pg_dump and app-pg-dumpall option --sequence-data to dump sequence data that would normally be excluded (Nathan Bossart)","part":"changes","patch_ids":["ce7a77b9bb38b32190aa243f00af6062","d4543602d88dfc88e50236d446d2d446"],"related_changes":[],"relations":[],"section":"Server Applications / pg_dump/pg_dumpall/pg_restore","section_path":["Server Applications","pg_dump/pg_dumpall/pg_restore"],"source_commits":["9c49f0e8c","acea3fc49"],"source_entry_id":"18.0/changes/141","source_hash":"4424f6df2367d695a36039440ad3354cad22e464adf6623f4a6ab6f11550ed11","source_url":"/docs/release/18.0/#RELEASE-18-PGDUMP","statement_hash":"f73184a2cfa206e9f7b47760836ce121d8a19c8db2af75e1831a8c988cc8e7fe","text":"Add pg_dump and pg_dumpall option --sequence-data to dump sequence data that would normally be excluded (Nathan Bossart) § §","title":"Add pg_dump and pg_dumpall option --sequence-data to dump sequence data that would normally be excluded","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["1fd1bd871"],"commit_groups":[["1fd1bd871"]],"commits":["1fd1bd871"],"cves":[],"db_id":"8d5b8469bade89e9c1af7e30be1f4707","html":"\u003cp\u003eAdd \u003ca href=\"/docs/18/app-pgdump.html\" title=\"pg_dump\"\u003e\u003cspan\u003e\u003cspan\u003epg_dump\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/docs/18/app-pg-dumpall.html\" title=\"pg_dumpall\"\u003e\u003cspan\u003e\u003cspan\u003epg_dumpall\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e, and \u003ca href=\"/docs/18/app-pgrestore.html\" title=\"pg_restore\"\u003e\u003cspan\u003e\u003cspan\u003epg_restore\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e options \u003ccode\u003e--statistics-only\u003c/code\u003e, \u003ccode\u003e--no-statistics\u003c/code\u003e, \u003ccode\u003e--no-data\u003c/code\u003e, and \u003ccode\u003e--no-schema\u003c/code\u003e (Corey Huinker, Jeff Davis) \u003ca href=\"https://postgr.es/c/1fd1bd871\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-1c7cab16e2b0faec","identity_text":"Add app-pgdump , app-pg-dumpall , and app-pgrestore options --statistics-only, --no-statistics, --no-data, and --no-schema (Corey Huinker, Jeff Davis)","part":"changes","patch_ids":["5d0cb3cccce1158170d1cd02ebb43757"],"related_changes":[{"db_id":"afbfe0f474eef5c2d8090e1f45feeeba","evidence":{"ambiguous_patch_ids":["5d0cb3cccce1158170d1cd02ebb43757"],"patch_ids":["5d0cb3cccce1158170d1cd02ebb43757"],"same_day":true},"kind":"related","label":"18.0","source_url":"/docs/release/18.0/#RELEASE-18-PGUPGRADE","title":"Allow pg_upgrade to preserve optimizer statistics","url":"/docs/compare/?release=18.0#18.0-4b580bc4439297d2","version":"18.0"}],"relations":[{"evidence":{"ambiguous_patch_ids":["5d0cb3cccce1158170d1cd02ebb43757"],"patch_ids":["5d0cb3cccce1158170d1cd02ebb43757"],"same_day":true},"rule":2,"target":"afbfe0f474eef5c2d8090e1f45feeeba","type":"related"}],"section":"Server Applications / pg_dump/pg_dumpall/pg_restore","section_path":["Server Applications","pg_dump/pg_dumpall/pg_restore"],"source_commits":["1fd1bd871"],"source_entry_id":"18.0/changes/142","source_hash":"48e0a689c9b0d5e55ef3d9ae16fc5c4a905c41197e8434f2f4f569b5a3250d84","source_url":"/docs/release/18.0/#RELEASE-18-PGDUMP","statement_hash":"19059f6013aef8345c941793ebe68ab82f27b44f9d1247c34243111b8ea7a09d","text":"Add pg_dump, pg_dumpall, and pg_restore options --statistics-only, --no-statistics, --no-data, and --no-schema (Corey Huinker, Jeff Davis) §","title":"Add pg_dump, pg_dumpall, and pg_restore options --statistics-only, --no-statistics, --no-data, and --no-schema","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["cd3c45125"],"commit_groups":[["cd3c45125"]],"commits":["cd3c45125"],"cves":[],"db_id":"f65a09f6ed8414315ea3ab15d44b063d","html":"\u003cp\u003eAdd option \u003ccode\u003e--no-policies\u003c/code\u003e to disable row level security policy processing in \u003ca href=\"/docs/18/app-pgdump.html\" title=\"pg_dump\"\u003e\u003cspan\u003e\u003cspan\u003epg_dump\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/docs/18/app-pg-dumpall.html\" title=\"pg_dumpall\"\u003e\u003cspan\u003e\u003cspan\u003epg_dumpall\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/docs/18/app-pgrestore.html\" title=\"pg_restore\"\u003e\u003cspan\u003e\u003cspan\u003epg_restore\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e (Nikolay Samokhvalov) \u003ca href=\"https://postgr.es/c/cd3c45125\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is useful for migrating to systems with different policies.\u003c/p\u003e","id":"18.0-448108837474663a","identity_text":"Add option --no-policies to disable row level security policy processing in app-pgdump , app-pg-dumpall , app-pgrestore (Nikolay Samokhvalov) This is useful for migrating to systems with different policies.","part":"changes","patch_ids":["e8632c1f2c717fcff1a04211ab59a0c3"],"related_changes":[],"relations":[],"section":"Server Applications / pg_dump/pg_dumpall/pg_restore","section_path":["Server Applications","pg_dump/pg_dumpall/pg_restore"],"source_commits":["cd3c45125"],"source_entry_id":"18.0/changes/143","source_hash":"9231fdf3af2971c21ef9738044c6bf6fc9a4e82d61c155057f623aeacf8d1381","source_url":"/docs/release/18.0/#RELEASE-18-PGDUMP","statement_hash":"c2544d757037ea2d9f0d54209afb5dfcd831c83b0fb375579be57d3ffb98b730","text":"Add option --no-policies to disable row level security policy processing in pg_dump, pg_dumpall, pg_restore (Nikolay Samokhvalov) § This is useful for migrating to systems with different policies.","title":"Add option --no-policies to disable row level security policy processing in pg_dump, pg_dumpall, pg_restore","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["1fd1bd871","c9d502eb6","d5f1b6a75"],"commit_groups":[["1fd1bd871"],["c9d502eb6"],["d5f1b6a75"]],"commits":["1fd1bd871","c9d502eb6","d5f1b6a75"],"cves":[],"db_id":"afbfe0f474eef5c2d8090e1f45feeeba","html":"\u003cp\u003eAllow \u003cspan\u003epg_upgrade\u003c/span\u003e to preserve optimizer statistics (Corey Huinker, Jeff Davis, Nathan Bossart) \u003ca href=\"https://postgr.es/c/1fd1bd871\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/c9d502eb6\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/d5f1b6a75\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/1fd1bd871\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eExtended statistics are not preserved. Also add \u003cspan\u003epg_upgrade\u003c/span\u003e option \u003ccode\u003e--no-statistics\u003c/code\u003e to disable statistics preservation.\u003c/p\u003e","id":"18.0-4b580bc4439297d2","identity_text":"Allow pg_upgrade to preserve optimizer statistics (Corey Huinker, Jeff Davis, Nathan Bossart) Extended statistics are not preserved. Also add pg_upgrade option --no-statistics to disable statistics preservation.","part":"changes","patch_ids":["394936eb907d9de5748a0a010a502753","5d0cb3cccce1158170d1cd02ebb43757","9d11899adf9cf21258dc987420e25832"],"related_changes":[{"db_id":"8d5b8469bade89e9c1af7e30be1f4707","evidence":{"ambiguous_patch_ids":["5d0cb3cccce1158170d1cd02ebb43757"],"patch_ids":["5d0cb3cccce1158170d1cd02ebb43757"],"same_day":true},"kind":"related","label":"18.0","source_url":"/docs/release/18.0/#RELEASE-18-PGDUMP","title":"Add pg_dump, pg_dumpall, and pg_restore options --statistics-only, --no-statistics, --no-data, and --no-schema","url":"/docs/compare/?release=18.0#18.0-1c7cab16e2b0faec","version":"18.0"}],"relations":[{"evidence":{"ambiguous_patch_ids":["5d0cb3cccce1158170d1cd02ebb43757"],"patch_ids":["5d0cb3cccce1158170d1cd02ebb43757"],"same_day":true},"rule":2,"target":"8d5b8469bade89e9c1af7e30be1f4707","type":"related"}],"section":"Server Applications / pg_upgrade","section_path":["Server Applications","pg_upgrade"],"source_commits":["1fd1bd871","c9d502eb6","d5f1b6a75"],"source_entry_id":"18.0/changes/144","source_hash":"ecf645ad4de74295862351e977c8da59f7c2af26f64a7500473f40f768a10c16","source_url":"/docs/release/18.0/#RELEASE-18-PGUPGRADE","statement_hash":"e18f67b21353450f4c5d6f714edfc631a34936d49aeb7064d84514378024acac","text":"Allow pg_upgrade to preserve optimizer statistics (Corey Huinker, Jeff Davis, Nathan Bossart) § § § § Extended statistics are not preserved. Also add pg_upgrade option --no-statistics to disable statistics preservation.","title":"Allow pg_upgrade to preserve optimizer statistics","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["40e2e5e92","46cad8b31","6ab8f27bc","6d3d2e8e5","7baa36de5","9db3018cf","bbf83cab9","c34eabfbb","c880cf258","cf2f82a37","f93f5f7b9"],"commit_groups":[["40e2e5e92"],["46cad8b31"],["6ab8f27bc"],["6d3d2e8e5"],["7baa36de5"],["9db3018cf"],["bbf83cab9"],["c34eabfbb"],["c880cf258"],["cf2f82a37"],["f93f5f7b9"]],"commits":["40e2e5e92","46cad8b31","6ab8f27bc","6d3d2e8e5","7baa36de5","9db3018cf","bbf83cab9","c34eabfbb","c880cf258","cf2f82a37","f93f5f7b9"],"cves":[],"db_id":"f9d4e72dc027a71ce2a37a4129d73c6d","html":"\u003cp\u003eAllow \u003cspan\u003epg_upgrade\u003c/span\u003e to process database checks in parallel (Nathan Bossart) \u003ca href=\"https://postgr.es/c/40e2e5e92\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/6d3d2e8e5\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/7baa36de5\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/46cad8b31\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/6ab8f27bc\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/bbf83cab9\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/9db3018cf\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/c34eabfbb\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/cf2f82a37\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/f93f5f7b9\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/c880cf258\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is controlled by the existing \u003ccode\u003e--jobs\u003c/code\u003e option.\u003c/p\u003e","id":"18.0-d8756d9cbd2b27ec","identity_text":"Allow pg_upgrade to process database checks in parallel (Nathan Bossart) This is controlled by the existing --jobs option.","part":"changes","patch_ids":["39d7bd98f5854223c3d58a547a4902aa","5ae351aee2ec1eb7531ddb523ae48e85","5d92df319c237bb627175e5564de1c46","6bedf241e4d5b07a2ac61d723ea4e964","77821ad60c100a1e9888a07a9b2869f7","b086dcc033e4eec4f10e04fbbd07818f","b5650ea4d83bdf9e634285ce798e2430","c6ef2c23b919aa135fcc566958ceb6a9","d47694834da9942ed2c592d8eacf8993","de1419043d49359a7ca596aee355ff07","df6634fce6c9cedeed8afd588b041845"],"related_changes":[],"relations":[],"section":"Server Applications / pg_upgrade","section_path":["Server Applications","pg_upgrade"],"source_commits":["40e2e5e92","46cad8b31","6ab8f27bc","6d3d2e8e5","7baa36de5","9db3018cf","bbf83cab9","c34eabfbb","c880cf258","cf2f82a37","f93f5f7b9"],"source_entry_id":"18.0/changes/145","source_hash":"0b5c0c1256bdf56fd1a023d5ff1ab1516afcdc337e7ee3b0f9b85acfb343155d","source_url":"/docs/release/18.0/#RELEASE-18-PGUPGRADE","statement_hash":"c05e7f4baaf6c58f0446522b852d7004694d10b5221f78902728516deb65d021","text":"Allow pg_upgrade to process database checks in parallel (Nathan Bossart) § § § § § § § § § § § This is controlled by the existing --jobs option.","title":"Allow pg_upgrade to process database checks in parallel","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["626d7236b"],"commit_groups":[["626d7236b"]],"commits":["626d7236b"],"cves":[],"db_id":"f554eecffc9529fc8a7bf5df05f1ee48","html":"\u003cp\u003eAdd \u003cspan\u003epg_upgrade\u003c/span\u003e option \u003ccode\u003e--swap\u003c/code\u003e to swap directories rather than copy, clone, or link files (Nathan Bossart) \u003ca href=\"https://postgr.es/c/626d7236b\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis mode is potentially the fastest.\u003c/p\u003e","id":"18.0-67f639ce48c62e2e","identity_text":"Add pg_upgrade option --swap to swap directories rather than copy, clone, or link files (Nathan Bossart) This mode is potentially the fastest.","part":"changes","patch_ids":["925b13034396ed82973d22527b295ac1"],"related_changes":[],"relations":[],"section":"Server Applications / pg_upgrade","section_path":["Server Applications","pg_upgrade"],"source_commits":["626d7236b"],"source_entry_id":"18.0/changes/146","source_hash":"5105f96fe345879f059f5dec740fcdf62c3fb86f637efc061ea65ff41062563f","source_url":"/docs/release/18.0/#RELEASE-18-PGUPGRADE","statement_hash":"446dc8dd0a3efeea98cbe5eef953503f703ba461702c2ad5d7041434781f351e","text":"Add pg_upgrade option --swap to swap directories rather than copy, clone, or link files (Nathan Bossart) § This mode is potentially the fastest.","title":"Add pg_upgrade option --swap to swap directories rather than copy, clone, or link files","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["1aab68059","a8238f87f"],"commit_groups":[["1aab68059"],["a8238f87f"]],"commits":["1aab68059","a8238f87f"],"cves":[],"db_id":"512ccd3d1bb4f010fe11b0eb637be55c","html":"\u003cp\u003eAdd \u003cspan\u003epg_upgrade\u003c/span\u003e option \u003ccode\u003e--set-char-signedness\u003c/code\u003e to set the default \u003ccode\u003echar\u003c/code\u003e signedness of new cluster (Masahiko Sawada) \u003ca href=\"https://postgr.es/c/a8238f87f\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/1aab68059\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is to handle cases where a pre-\u003cspan\u003ePostgreSQL\u003c/span\u003e 18 cluster's default \u003cacronym\u003eCPU\u003c/acronym\u003e signedness does not match the new cluster.\u003c/p\u003e","id":"18.0-f19ad14633daaefd","identity_text":"Add pg_upgrade option --set-char-signedness to set the default char signedness of new cluster (Masahiko Sawada) This is to handle cases where a pre-PostgreSQL 18 cluster's default CPU signedness does not match the new cluster.","part":"changes","patch_ids":["85f2c26487e180e9e34c5a419dbbbf35","b55f3df554d6f4f601f40f9bd71932dc"],"related_changes":[],"relations":[],"section":"Server Applications / pg_upgrade","section_path":["Server Applications","pg_upgrade"],"source_commits":["1aab68059","a8238f87f"],"source_entry_id":"18.0/changes/147","source_hash":"81fc7dfeaecc0c2acbed8c77a91318171c093256de3f1c6509e4ddb9b3506a2b","source_url":"/docs/release/18.0/#RELEASE-18-PGUPGRADE","statement_hash":"5d736231626605165fd5a2523999bf34662259ec86505d0abb98425210873d2d","text":"Add pg_upgrade option --set-char-signedness to set the default char signedness of new cluster (Masahiko Sawada) § § This is to handle cases where a pre-PostgreSQL 18 cluster's default CPU signedness does not match the new cluster.","title":"Add pg_upgrade option --set-char-signedness to set the default char signedness of new cluster","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["fb2ea12f4"],"commit_groups":[["fb2ea12f4"]],"commits":["fb2ea12f4"],"cves":[],"db_id":"954788171dcb6930008281d2189eef2b","html":"\u003cp\u003eAdd \u003ca href=\"/docs/18/app-pgcreatesubscriber.html\" title=\"pg_createsubscriber\"\u003e\u003cspan\u003e\u003cspan\u003epg_createsubscriber\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e option \u003ccode\u003e--all\u003c/code\u003e to create logical replicas for all databases (Shubham Khanna) \u003ca href=\"https://postgr.es/c/fb2ea12f4\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-326132e0413a2af5","identity_text":"Add app-pgcreatesubscriber option --all to create logical replicas for all databases (Shubham Khanna)","part":"changes","patch_ids":["245e6d7207164c875aec56850b5dd55c"],"related_changes":[],"relations":[],"section":"Server Applications / Logical Replication Applications","section_path":["Server Applications","Logical Replication Applications"],"source_commits":["fb2ea12f4"],"source_entry_id":"18.0/changes/148","source_hash":"faf0501784185f0274b91341f0cea4d1ee6e811868673a3a6ee1ed33847c5743","source_url":"/docs/release/18.0/#RELEASE-18-LOGICALREP-APP","statement_hash":"c4a2693c70db1fc909c0ec71efb48bf2afef9841773d730329b484b5e39c01bb","text":"Add pg_createsubscriber option --all to create logical replicas for all databases (Shubham Khanna) §","title":"Add pg_createsubscriber option --all to create logical replicas for all databases","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["60dda7bbc","e5aeed4b8"],"commit_groups":[["60dda7bbc"],["e5aeed4b8"]],"commits":["60dda7bbc","e5aeed4b8"],"cves":[],"db_id":"a3ee32edc1ed5ed8fc4beb24a728e94c","html":"\u003cp\u003eAdd \u003cspan\u003epg_createsubscriber\u003c/span\u003e option \u003ccode\u003e--clean\u003c/code\u003e to remove publications (Shubham Khanna) \u003ca href=\"https://postgr.es/c/e5aeed4b8\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/60dda7bbc\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-43d66b2640370b92","identity_text":"Add pg_createsubscriber option --clean to remove publications (Shubham Khanna)","part":"changes","patch_ids":["8dcabb64a74beea420e0402e41aa4d21","c203fff53a96a19f82a444e6ce2b5966"],"related_changes":[],"relations":[],"section":"Server Applications / Logical Replication Applications","section_path":["Server Applications","Logical Replication Applications"],"source_commits":["60dda7bbc","e5aeed4b8"],"source_entry_id":"18.0/changes/149","source_hash":"2da64372e5883b9f3bdb349da006a3aa23028a390fab7edff19003a7d49a0316","source_url":"/docs/release/18.0/#RELEASE-18-LOGICALREP-APP","statement_hash":"1b7cc63371adabb9b0a36adb1a8829f98a748e42e2ed5ff2a972812322515b23","text":"Add pg_createsubscriber option --clean to remove publications (Shubham Khanna) § §","title":"Add pg_createsubscriber option --clean to remove publications","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["e117cfb2f"],"commit_groups":[["e117cfb2f"]],"commits":["e117cfb2f"],"cves":[],"db_id":"ddd2eec200c963d80868d55e604e2e3a","html":"\u003cp\u003eAdd \u003cspan\u003epg_createsubscriber\u003c/span\u003e option \u003ccode\u003e--enable-two-phase\u003c/code\u003e to enable prepared transactions (Shubham Khanna) \u003ca href=\"https://postgr.es/c/e117cfb2f\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-716d7b5f8a521be7","identity_text":"Add pg_createsubscriber option --enable-two-phase to enable prepared transactions (Shubham Khanna)","part":"changes","patch_ids":["9f0265494d5def7f02e8f05819a94c23"],"related_changes":[],"relations":[],"section":"Server Applications / Logical Replication Applications","section_path":["Server Applications","Logical Replication Applications"],"source_commits":["e117cfb2f"],"source_entry_id":"18.0/changes/150","source_hash":"343f583b66e94905a85d02018a62265c74dc248149a2d26e069195c9ef400ead","source_url":"/docs/release/18.0/#RELEASE-18-LOGICALREP-APP","statement_hash":"faec4e2c79436622d74ba1b7f84f70be155252fc23e1b39dcdad38cd5ffc05c6","text":"Add pg_createsubscriber option --enable-two-phase to enable prepared transactions (Shubham Khanna) §","title":"Add pg_createsubscriber option --enable-two-phase to enable prepared transactions","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["cf2655a90"],"commit_groups":[["cf2655a90"]],"commits":["cf2655a90"],"cves":[],"db_id":"99a65ba8cccf85a1b00949d9784e824d","html":"\u003cp\u003eAdd \u003ca href=\"/docs/18/app-pgrecvlogical.html\" title=\"pg_recvlogical\"\u003e\u003cspan\u003e\u003cspan\u003epg_recvlogical\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e option \u003ccode\u003e--enable-failover\u003c/code\u003e to specify failover slots (Hayato Kuroda) \u003ca href=\"https://postgr.es/c/cf2655a90\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eAlso add option \u003ccode\u003e--enable-two-phase\u003c/code\u003e as a synonym for \u003ccode\u003e--two-phase\u003c/code\u003e, and deprecate the latter.\u003c/p\u003e","id":"18.0-9451ebe7b4fbdfba","identity_text":"Add app-pgrecvlogical option --enable-failover to specify failover slots (Hayato Kuroda) Also add option --enable-two-phase as a synonym for --two-phase, and deprecate the latter.","part":"changes","patch_ids":["f79f6257cc134079c46d90ba5379ee73"],"related_changes":[],"relations":[],"section":"Server Applications / Logical Replication Applications","section_path":["Server Applications","Logical Replication Applications"],"source_commits":["cf2655a90"],"source_entry_id":"18.0/changes/151","source_hash":"88d9dfa30e5ff57caeb5e8300717a8f74efeb33f2f5d2a0704986b8b80e9f686","source_url":"/docs/release/18.0/#RELEASE-18-LOGICALREP-APP","statement_hash":"ec97ab729002ad98ab6300ea9df86f7113426cb2f32822d741404b144a051152","text":"Add pg_recvlogical option --enable-failover to specify failover slots (Hayato Kuroda) § Also add option --enable-two-phase as a synonym for --two-phase, and deprecate the latter.","title":"Add pg_recvlogical option --enable-failover to specify failover slots","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["c68100aa4"],"commit_groups":[["c68100aa4"]],"commits":["c68100aa4"],"cves":[],"db_id":"8f364820e55644a3a9e26c58d361267b","html":"\u003cp\u003eAllow \u003cspan\u003epg_recvlogical\u003c/span\u003e \u003ccode\u003e--drop-slot\u003c/code\u003e to work without \u003ccode\u003e--dbname\u003c/code\u003e (Hayato Kuroda) \u003ca href=\"https://postgr.es/c/c68100aa4\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-469a5c74393039c4","identity_text":"Allow pg_recvlogical --drop-slot to work without --dbname (Hayato Kuroda)","part":"changes","patch_ids":["33d58051231422c994deb2adafe09815"],"related_changes":[],"relations":[],"section":"Server Applications / Logical Replication Applications","section_path":["Server Applications","Logical Replication Applications"],"source_commits":["c68100aa4"],"source_entry_id":"18.0/changes/152","source_hash":"4c6b0f837901f50c25bc9205453bb7b4ef00415891e3eed73509249ca294591d","source_url":"/docs/release/18.0/#RELEASE-18-LOGICALREP-APP","statement_hash":"7a8e8735b056aa3b8f0fd15ad90f0690b2e9a69bc625d7c8a66b4465cab96d14","text":"Allow pg_recvlogical --drop-slot to work without --dbname (Hayato Kuroda) §","title":"Allow pg_recvlogical --drop-slot to work without --dbname","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["4b211003e","a0a5869a8"],"commit_groups":[["4b211003e"],["a0a5869a8"]],"commits":["4b211003e","a0a5869a8"],"cves":[],"db_id":"59fdac27249ed47565b6f75c16e0cd37","html":"\u003cp\u003eSeparate the loading and running of \u003ca href=\"/docs/18/xfunc-c.html#XFUNC-ADDIN-INJECTION-POINTS\" title=\"36.10.14. Injection Points\"\u003einjection points\u003c/a\u003e (Michael Paquier, Heikki Linnakangas) \u003ca href=\"https://postgr.es/c/4b211003e\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/a0a5869a8\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eInjection points can now be created, but not run, via \u003ca href=\"/docs/18/xfunc-c.html#XFUNC-ADDIN-INJECTION-POINTS\" title=\"36.10.14. Injection Points\"\u003e\u003ccode\u003eINJECTION_POINT_LOAD()\u003c/code\u003e\u003c/a\u003e, and such injection points can be run via \u003ca href=\"/docs/18/xfunc-c.html#XFUNC-ADDIN-INJECTION-POINTS\" title=\"36.10.14. Injection Points\"\u003e\u003ccode\u003eINJECTION_POINT_CACHED()\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e","id":"18.0-09b969a654ab4db4","identity_text":"Separate the loading and running of injection points (Michael Paquier, Heikki Linnakangas) Injection points can now be created, but not run, via INJECTION_POINT_LOAD(), and such injection points can be run via INJECTION_POINT_CACHED().","part":"changes","patch_ids":["613d98e15d1b3445fb5c464537496995","7b03a2eaca0889ac9bd69ab74602affc"],"related_changes":[],"relations":[],"section":"Source Code","section_path":["Source Code"],"source_commits":["4b211003e","a0a5869a8"],"source_entry_id":"18.0/changes/153","source_hash":"893df888cecfaa14b955913efb9204b93a7b2018ba3f7a9e397a29af6bcb71b3","source_url":"/docs/release/18.0/#RELEASE-18-SOURCE-CODE","statement_hash":"88d18cc833292ed5dc6609366922320f4b754c28efda5a19a0778d9ce7001fbd","text":"Separate the loading and running of injection points (Michael Paquier, Heikki Linnakangas) § § Injection points can now be created, but not run, via INJECTION_POINT_LOAD(), and such injection points can be run via INJECTION_POINT_CACHED().","title":"Separate the loading and running of injection points","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["371f2db8b"],"commit_groups":[["371f2db8b"]],"commits":["371f2db8b"],"cves":[],"db_id":"18e4ff23a56d78d29d6ae66814cb5956","html":"\u003cp\u003eSupport runtime arguments in injection points (Michael Paquier) \u003ca href=\"https://postgr.es/c/371f2db8b\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-2a684741a2d184a7","identity_text":"Support runtime arguments in injection points (Michael Paquier)","part":"changes","patch_ids":["904e25b09a2067d4faafaee411020747"],"related_changes":[],"relations":[],"section":"Source Code","section_path":["Source Code"],"source_commits":["371f2db8b"],"source_entry_id":"18.0/changes/154","source_hash":"05301770ccd349689d8b69904a931228a96e0662899a3ade25f228442b6353fc","source_url":"/docs/release/18.0/#RELEASE-18-SOURCE-CODE","statement_hash":"5628295a828190147d169e94449983354f8ae8ff5a86e747e2323a9fafe55684","text":"Support runtime arguments in injection points (Michael Paquier) §","title":"Support runtime arguments in injection points","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["20e0e7da9"],"commit_groups":[["20e0e7da9"]],"commits":["20e0e7da9"],"cves":[],"db_id":"69ea97ff28af6ada25aca341f8a735b0","html":"\u003cp\u003eAllow inline injection point test code with \u003ca href=\"/docs/18/xfunc-c.html#XFUNC-ADDIN-INJECTION-POINTS\" title=\"36.10.14. Injection Points\"\u003e\u003ccode\u003eIS_INJECTION_POINT_ATTACHED()\u003c/code\u003e\u003c/a\u003e (Heikki Linnakangas) \u003ca href=\"https://postgr.es/c/20e0e7da9\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-b8063b04940470a1","identity_text":"Allow inline injection point test code with IS_INJECTION_POINT_ATTACHED() (Heikki Linnakangas)","part":"changes","patch_ids":["2674b27a1325c15a5774f87f3db64257"],"related_changes":[],"relations":[],"section":"Source Code","section_path":["Source Code"],"source_commits":["20e0e7da9"],"source_entry_id":"18.0/changes/155","source_hash":"79e4cea60860d8836e161e88fdabc5f64d65b8ed64a9f03e86904ead26b4d830","source_url":"/docs/release/18.0/#RELEASE-18-SOURCE-CODE","statement_hash":"205a386562b145149d35fbbbf10a8d236a72a87070e3f78c0fc594e2c19dfb63","text":"Allow inline injection point test code with IS_INJECTION_POINT_ATTACHED() (Heikki Linnakangas) §","title":"Allow inline injection point test code with IS_INJECTION_POINT_ATTACHED()","variants":[],"version":"18.0"},{"also_in":[],"category":"performance","category_label":"Performance","commit_aliases":["ca6fde922"],"commit_groups":[["ca6fde922"]],"commits":["ca6fde922"],"cves":[],"db_id":"bf59b3a6451a01581991094dc922205b","html":"\u003cp\u003eImprove the performance of processing long \u003ca href=\"/docs/18/datatype-json.html\" title=\"8.14. JSON Types\"\u003e\u003ccode\u003eJSON\u003c/code\u003e\u003c/a\u003e strings using \u003cacronym\u003eSIMD\u003c/acronym\u003e (Single Instruction Multiple Data) (David Rowley) \u003ca href=\"https://postgr.es/c/ca6fde922\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-90ebf5445d5aa78e","identity_text":"Improve the performance of processing long JSON strings using SIMD (Single Instruction Multiple Data) (David Rowley)","part":"changes","patch_ids":["6cd1200fc56103b10efacfbc076570b2"],"related_changes":[],"relations":[],"section":"Source Code","section_path":["Source Code"],"source_commits":["ca6fde922"],"source_entry_id":"18.0/changes/156","source_hash":"2b68724e9ee7f08af34fb5dc99e67d9a8ab04ede02afe191439e3458dd0f05e6","source_url":"/docs/release/18.0/#RELEASE-18-SOURCE-CODE","statement_hash":"b5d92db4da4785f9e55e37acc9bac0dd40e7bb88a4bb126cc0e859e91cbee94c","text":"Improve the performance of processing long JSON strings using SIMD (Single Instruction Multiple Data) (David Rowley) §","title":"Improve the performance of processing long JSON strings using SIMD (Single Instruction Multiple Data)","variants":[],"version":"18.0"},{"also_in":[],"category":"performance","category_label":"Performance","commit_aliases":["3c6e8c123"],"commit_groups":[["3c6e8c123"]],"commits":["3c6e8c123"],"cves":[],"db_id":"ecafb4a5cc6e92dddebe2ea023f597fc","html":"\u003cp\u003eSpeed up CRC32C calculations using x86 \u003cacronym\u003eAVX\u003c/acronym\u003e-512 instructions (Raghuveer Devulapalli, Paul Amonson) \u003ca href=\"https://postgr.es/c/3c6e8c123\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-b11e30db33f1640b","identity_text":"Speed up CRC32C calculations using x86 AVX-512 instructions (Raghuveer Devulapalli, Paul Amonson)","part":"changes","patch_ids":["019ee0d01e78e91881714ff3219df19d"],"related_changes":[],"relations":[],"section":"Source Code","section_path":["Source Code"],"source_commits":["3c6e8c123"],"source_entry_id":"18.0/changes/157","source_hash":"5c411d4b51c4b6be50ef868a21271a59e4a75118bd9ef67ecd94fe284fa402d6","source_url":"/docs/release/18.0/#RELEASE-18-SOURCE-CODE","statement_hash":"9ebfb29bd90710429d9371df23815bf2b5a56103e50f8fd93d29218148000bd5","text":"Speed up CRC32C calculations using x86 AVX-512 instructions (Raghuveer Devulapalli, Paul Amonson) §","title":"Speed up CRC32C calculations using x86 AVX-512 instructions","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["519338ace","6be53c276"],"commit_groups":[["519338ace"],["6be53c276"]],"commits":["519338ace","6be53c276"],"cves":[],"db_id":"e50b80ab8e5fdb402e0beb48a5db4bc9","html":"\u003cp\u003eAdd \u003cacronym\u003eARM\u003c/acronym\u003e Neon and \u003cacronym\u003eSVE CPU\u003c/acronym\u003e intrinsics for popcount (integer bit counting) (Chiranmoy Bhattacharya, Devanga Susmitha, Rama Malladi) \u003ca href=\"https://postgr.es/c/6be53c276\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/519338ace\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-db83e36c1db3de67","identity_text":"Add ARM Neon and SVE CPU intrinsics for popcount (integer bit counting) (Chiranmoy Bhattacharya, Devanga Susmitha, Rama Malladi)","part":"changes","patch_ids":["205916923c7dd75d0231c55476cd4c48","fd2f2d7fbcf88e0449c66f9f417165fc"],"related_changes":[],"relations":[],"section":"Source Code","section_path":["Source Code"],"source_commits":["519338ace","6be53c276"],"source_entry_id":"18.0/changes/158","source_hash":"09d6f13a948bcd90f3f3ac8e4018d0c533c115226c68a7db35a0bca2856dc813","source_url":"/docs/release/18.0/#RELEASE-18-SOURCE-CODE","statement_hash":"ee09c22e85fe2068ac5f7492e13742c8aea22c6679a441f8015237ca7bdeeca7","text":"Add ARM Neon and SVE CPU intrinsics for popcount (integer bit counting) (Chiranmoy Bhattacharya, Devanga Susmitha, Rama Malladi) § §","title":"Add ARM Neon and SVE CPU intrinsics for popcount (integer bit counting)","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["8dc28d7eb","9428c001f","c4e44224c","ca481d3c9"],"commit_groups":[["8dc28d7eb"],["9428c001f"],["c4e44224c"],["ca481d3c9"]],"commits":["8dc28d7eb","9428c001f","c4e44224c","ca481d3c9"],"cves":[],"db_id":"a7dfad9e7ea9413b1f4feb4de2d8c632","html":"\u003cp\u003eImprove the speed of numeric multiplication and division (Joel Jacobson, Dean Rasheed) \u003ca href=\"https://postgr.es/c/ca481d3c9\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/c4e44224c\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/8dc28d7eb\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/9428c001f\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-ecae7587264d9281","identity_text":"Improve the speed of numeric multiplication and division (Joel Jacobson, Dean Rasheed)","part":"changes","patch_ids":["2f55166563d7d9ec64de99e0bf6e591a","674fb4fd8062e095c5e8fbfa7beab186","8d573b00acf40046627605c19414157d","eb6faba6db5698c6310910540adef0d3"],"related_changes":[],"relations":[],"section":"Source Code","section_path":["Source Code"],"source_commits":["8dc28d7eb","9428c001f","c4e44224c","ca481d3c9"],"source_entry_id":"18.0/changes/159","source_hash":"6edd099ca744adedc636a8415e8be30ad6220455ffa27ad1859cf8db0e9e45b0","source_url":"/docs/release/18.0/#RELEASE-18-SOURCE-CODE","statement_hash":"8921ae4e40b001cd77fce579693d0a2e93ba934d8c04d74b261b43866655c114","text":"Improve the speed of numeric multiplication and division (Joel Jacobson, Dean Rasheed) § § § §","title":"Improve the speed of numeric multiplication and division","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["65c298f61","8cc139bec","ba2a3c230"],"commit_groups":[["65c298f61"],["8cc139bec"],["ba2a3c230"]],"commits":["65c298f61","8cc139bec","ba2a3c230"],"cves":[],"db_id":"c46ccca9f1946dfd4459a691e07af2db","html":"\u003cp\u003eAdd configure option \u003ca href=\"/docs/18/install-make.html#CONFIGURE-OPTION-WITH-LIBNUMA\"\u003e\u003ccode\u003e--with-libnuma\u003c/code\u003e\u003c/a\u003e to enable \u003cacronym\u003eNUMA\u003c/acronym\u003e awareness (Jakub Wartak, Bertrand Drouvot) \u003ca href=\"https://postgr.es/c/65c298f61\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/8cc139bec\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/ba2a3c230\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe function \u003ca href=\"/docs/18/functions-info.html#FUNCTIONS-INFO-SESSION-TABLE\" title=\"Table 9.71. Session Information Functions\"\u003e\u003ccode\u003epg_numa_available()\u003c/code\u003e\u003c/a\u003e reports on \u003cacronym\u003eNUMA\u003c/acronym\u003e awareness, and system views \u003ca href=\"/docs/18/view-pg-shmem-allocations-numa.html\" title=\"53.28. pg_shmem_allocations_numa\"\u003e\u003ccode\u003epg_shmem_allocations_numa\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"/docs/18/pgbuffercache.html#PGBUFFERCACHE-PG-BUFFERCACHE-NUMA\" title=\"F.25.2. The pg_buffercache_numa View\"\u003e\u003ccode\u003epg_buffercache_numa\u003c/code\u003e\u003c/a\u003e which report on shared memory distribution across \u003cacronym\u003eNUMA\u003c/acronym\u003e nodes.\u003c/p\u003e","id":"18.0-fd7d506191195bf5","identity_text":"Add configure option --with-libnuma to enable NUMA awareness (Jakub Wartak, Bertrand Drouvot) The function pg_numa_available() reports on NUMA awareness, and system views pg_shmem_allocations_numa and pg_buffercache_numa which report on shared memory distribution across NUMA nodes.","part":"changes","patch_ids":["0bda3a2939f0c8e553f2cd364b861d66","a0086763a22eaef1a94129dc2cb83f26","ff9b0977e0d9bc988b2742729958c76a"],"related_changes":[],"relations":[],"section":"Source Code","section_path":["Source Code"],"source_commits":["65c298f61","8cc139bec","ba2a3c230"],"source_entry_id":"18.0/changes/160","source_hash":"0b0694513101ef09876066d6557fa4d54f9a726b8c32a495d2e11cb5dbb87a56","source_url":"/docs/release/18.0/#RELEASE-18-SOURCE-CODE","statement_hash":"db9faab559f61ef090bb1474d8e37a8edb03dfee891204a25cf413b42cb27eae","text":"Add configure option --with-libnuma to enable NUMA awareness (Jakub Wartak, Bertrand Drouvot) § § § The function pg_numa_available() reports on NUMA awareness, and system views pg_shmem_allocations_numa and pg_buffercache_numa which report on shared memory distribution across NUMA nodes.","title":"Add configure option --with-libnuma to enable NUMA awareness","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["b52c4fc3c"],"commit_groups":[["b52c4fc3c"]],"commits":["b52c4fc3c"],"cves":[],"db_id":"a183c4433783924b1f543b04dffbe63e","html":"\u003cp\u003eAdd \u003ca href=\"/docs/18/storage-toast.html\" title=\"66.2. TOAST\"\u003e\u003cacronym\u003eTOAST\u003c/acronym\u003e\u003c/a\u003e table to \u003ca href=\"/docs/18/catalog-pg-index.html\" title=\"52.26. pg_index\"\u003e\u003ccode\u003epg_index\u003c/code\u003e\u003c/a\u003e to allow for very large expression indexes (Nathan Bossart) \u003ca href=\"https://postgr.es/c/b52c4fc3c\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-9d0c448b436ae645","identity_text":"Add TOAST table to pg_index to allow for very large expression indexes (Nathan Bossart)","part":"changes","patch_ids":["825a8af7998ad11c985cc0c19920c0aa"],"related_changes":[],"relations":[],"section":"Source Code","section_path":["Source Code"],"source_commits":["b52c4fc3c"],"source_entry_id":"18.0/changes/161","source_hash":"e38df8c4adac3c916dd37e49534a831db4c663c75afb9f1572aa9d9a19e1310b","source_url":"/docs/release/18.0/#RELEASE-18-SOURCE-CODE","statement_hash":"585ce1fc6b90250a5d9f417054d52adc8449c84cb9126c4a7c8e18ded4b9bc89","text":"Add TOAST table to pg_index to allow for very large expression indexes (Nathan Bossart) §","title":"Add TOAST table to pg_index to allow for very large expression indexes","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["02a8d0c45"],"commit_groups":[["02a8d0c45"]],"commits":["02a8d0c45"],"cves":[],"db_id":"de9715e00924e543a93173bd557f8a87","html":"\u003cp\u003eRemove column \u003ca href=\"/docs/18/catalog-pg-attribute.html\" title=\"52.7. pg_attribute\"\u003e\u003ccode\u003epg_attribute\u003c/code\u003e\u003c/a\u003e.\u003ccode\u003eattcacheoff\u003c/code\u003e (David Rowley) \u003ca href=\"https://postgr.es/c/02a8d0c45\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-7c4c1a0fa6a16941","identity_text":"Remove column pg_attribute.attcacheoff (David Rowley)","part":"changes","patch_ids":["2a64af08b922f4b5dfec5863eeacc734"],"related_changes":[],"relations":[],"section":"Source Code","section_path":["Source Code"],"source_commits":["02a8d0c45"],"source_entry_id":"18.0/changes/162","source_hash":"645f698b676a9ba73d5e041adbcaff61122cc02dafe32585a497ee892ea42a60","source_url":"/docs/release/18.0/#RELEASE-18-SOURCE-CODE","statement_hash":"f1b5f09c6883050623ac1812e798880f8ba176d23813a4ced4f4bd063d39ad1d","text":"Remove column pg_attribute.attcacheoff (David Rowley) §","title":"Remove column pg_attribute.attcacheoff","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["99f8f3fbb"],"commit_groups":[["99f8f3fbb"]],"commits":["99f8f3fbb"],"cves":[],"db_id":"2e16a121d2fdae3f34873b26af68f724","html":"\u003cp\u003eAdd column \u003ca href=\"/docs/18/catalog-pg-class.html\" title=\"52.11. pg_class\"\u003e\u003ccode\u003epg_class\u003c/code\u003e\u003c/a\u003e.\u003ccode\u003erelallfrozen\u003c/code\u003e (Melanie Plageman) \u003ca href=\"https://postgr.es/c/99f8f3fbb\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-78805849d91844f9","identity_text":"Add column pg_class.relallfrozen (Melanie Plageman)","part":"changes","patch_ids":["e34a60db7964acc6555e873dfb10725a"],"related_changes":[],"relations":[],"section":"Source Code","section_path":["Source Code"],"source_commits":["99f8f3fbb"],"source_entry_id":"18.0/changes/163","source_hash":"02febe83c5ceca231086a3ac50eeaa199052ee8b196e5ca9c648c59dde6831ca","source_url":"/docs/release/18.0/#RELEASE-18-SOURCE-CODE","statement_hash":"96beb2905e3a248595ecdda5e965d732eec214f703f8add76ce30ed4598a9414","text":"Add column pg_class.relallfrozen (Melanie Plageman) §","title":"Add column pg_class.relallfrozen","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["56fead44d","af4002b38"],"commit_groups":[["56fead44d"],["af4002b38"]],"commits":["56fead44d","af4002b38"],"cves":[],"db_id":"c0896ad6ccc9b4c2522da43d546da5f5","html":"\u003cp\u003eAdd \u003ca href=\"/docs/18/indexam.html\" title=\"Chapter 63. Index Access Method Interface Definition\"\u003e\u003ccode\u003eamgettreeheight\u003c/code\u003e\u003c/a\u003e, \u003ccode\u003eamconsistentequality\u003c/code\u003e, and \u003ccode\u003eamconsistentordering\u003c/code\u003e to the index access method \u003cacronym\u003eAPI\u003c/acronym\u003e (Mark Dilger) \u003ca href=\"https://postgr.es/c/56fead44d\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/af4002b38\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-c782cff0c813679a","identity_text":"Add amgettreeheight, amconsistentequality, and amconsistentordering to the index access method API (Mark Dilger)","part":"changes","patch_ids":["d54243aea7af44672498af96b843565f","fb0944545fe3714256167ec92793a5fc"],"related_changes":[],"relations":[],"section":"Source Code","section_path":["Source Code"],"source_commits":["56fead44d","af4002b38"],"source_entry_id":"18.0/changes/164","source_hash":"d9121373abf7531fa3051db8fd45e11e34a371bb1779aa72dbd4573002763cc6","source_url":"/docs/release/18.0/#RELEASE-18-SOURCE-CODE","statement_hash":"6ef133d3b85ce6783272fac722c9d4e931a1f2092c9da0e51cb9b27246ad7051","text":"Add amgettreeheight, amconsistentequality, and amconsistentordering to the index access method API (Mark Dilger) § §","title":"Add amgettreeheight, amconsistentequality, and amconsistentordering to the index access method API","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["7406ab623"],"commit_groups":[["7406ab623"]],"commits":["7406ab623"],"cves":[],"db_id":"547b4d266eb95df0ca214e88f83f2ac3","html":"\u003cp\u003eAdd GiST support function \u003ca href=\"/docs/18/gist.html#GIST-EXTENSIBILITY\" title=\"65.2.3. Extensibility\"\u003e\u003ccode\u003estratnum()\u003c/code\u003e\u003c/a\u003e (Paul A. Jungwirth) \u003ca href=\"https://postgr.es/c/7406ab623\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-460501ce376100d3","identity_text":"Add GiST support function stratnum() (Paul A. Jungwirth)","part":"changes","patch_ids":["c0f4d3964e16c6eacecdf93706337b0f"],"related_changes":[],"relations":[],"section":"Source Code","section_path":["Source Code"],"source_commits":["7406ab623"],"source_entry_id":"18.0/changes/165","source_hash":"cd860c634e5c11ef7814413f8dfc7d4e50a604bc8ae0127b42546e3f70578790","source_url":"/docs/release/18.0/#RELEASE-18-SOURCE-CODE","statement_hash":"ab651fe748b337f580f4b0931d16866d0f092f26619271305ee30d4e09247dd2","text":"Add GiST support function stratnum() (Paul A. Jungwirth) §","title":"Add GiST support function stratnum()","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["44fe30fda"],"commit_groups":[["44fe30fda"]],"commits":["44fe30fda"],"cves":[],"db_id":"1527e2bcee85b6c81195ac3b56adf9ec","html":"\u003cp\u003eRecord the default \u003cacronym\u003eCPU\u003c/acronym\u003e signedness of \u003ccode\u003echar\u003c/code\u003e in \u003ca href=\"/docs/18/app-pgcontroldata.html\" title=\"pg_controldata\"\u003e\u003cspan\u003e\u003cspan\u003epg_controldata\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e (Masahiko Sawada) \u003ca href=\"https://postgr.es/c/44fe30fda\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-4ab938fcc679b324","identity_text":"Record the default CPU signedness of char in app-pgcontroldata (Masahiko Sawada)","part":"changes","patch_ids":["a1e6c83e979843b0eaf5ffe14783e0e3"],"related_changes":[],"relations":[],"section":"Source Code","section_path":["Source Code"],"source_commits":["44fe30fda"],"source_entry_id":"18.0/changes/166","source_hash":"363da2533daefb50791d8811bea21405b4ee732ce6c4f3f355442806e1dd31fa","source_url":"/docs/release/18.0/#RELEASE-18-SOURCE-CODE","statement_hash":"47a0f9c4a0f67658919456be40ebfed6e7fa4cc578e1cbb804123622a3dc417b","text":"Record the default CPU signedness of char in pg_controldata (Masahiko Sawada) §","title":"Record the default CPU signedness of char in pg_controldata","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["0793ab810","72a3d0462"],"commit_groups":[["0793ab810"],["72a3d0462"]],"commits":["0793ab810","72a3d0462"],"cves":[],"db_id":"d9d289d7c17d30019901f5104438a9b5","html":"\u003cp\u003eAdd support for Python \"Limited \u003cacronym\u003eAPI\u003c/acronym\u003e\" in \u003ca href=\"/docs/18/plpython.html\" title=\"Chapter 44. PL/Python — Python Procedural Language\"\u003ePL/Python\u003c/a\u003e (Peter Eisentraut) \u003ca href=\"https://postgr.es/c/72a3d0462\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/0793ab810\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis helps prevent problems caused by \u003cspan\u003ePython\u003c/span\u003e 3.x version mismatches.\u003c/p\u003e","id":"18.0-4255e556057b15b2","identity_text":"Add support for Python \"Limited API\" in PL/Python (Peter Eisentraut) This helps prevent problems caused by Python 3.x version mismatches.","part":"changes","patch_ids":["cbf73ec20c058f368547efbe37a75ed9","d615c6575bcf9dabc148901891890deb"],"related_changes":[],"relations":[],"section":"Source Code","section_path":["Source Code"],"source_commits":["0793ab810","72a3d0462"],"source_entry_id":"18.0/changes/167","source_hash":"f49def5963789b61e9e11e6b78ad16b391ce6657675eb5e12857c3d90c25063f","source_url":"/docs/release/18.0/#RELEASE-18-SOURCE-CODE","statement_hash":"bf3af05933e7d77673abcb674c13915120867f48aac15d60053f750a42d0d7d0","text":"Add support for Python \"Limited API\" in PL/Python (Peter Eisentraut) § § This helps prevent problems caused by Python 3.x version mismatches.","title":"Add support for Python \"Limited API\" in PL/Python","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["45363fca6"],"commit_groups":[["45363fca6"]],"commits":["45363fca6"],"cves":[],"db_id":"3803d2204af4aafb31861db9c07294df","html":"\u003cp\u003eChange the minimum supported \u003cspan\u003ePython\u003c/span\u003e version to 3.6.8 (Jacob Champion) \u003ca href=\"https://postgr.es/c/45363fca6\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-923b07e7289358ea","identity_text":"Change the minimum supported Python version to 3.6.8 (Jacob Champion)","part":"changes","patch_ids":["d238a5c385201266bab1298ddc3d6937"],"related_changes":[],"relations":[],"section":"Source Code","section_path":["Source Code"],"source_commits":["45363fca6"],"source_entry_id":"18.0/changes/168","source_hash":"edfc0a822c1e6decb577eb651c059faf6285be5446a2ae201393b823c93a7b4a","source_url":"/docs/release/18.0/#RELEASE-18-SOURCE-CODE","statement_hash":"8e0582a6e94665c56a736b1daf82f2826837a955bf1ad3c8fed3ee41c1854b9b","text":"Change the minimum supported Python version to 3.6.8 (Jacob Champion) §","title":"Change the minimum supported Python version to 3.6.8","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["6c66b7443","a70e01d43"],"commit_groups":[["6c66b7443"],["a70e01d43"]],"commits":["6c66b7443","a70e01d43"],"cves":[],"db_id":"48cbbe1a33f004fe33768f2881d5d92f","html":"\u003cp\u003eRemove support for \u003cspan\u003eOpenSSL\u003c/span\u003e versions older than 1.1.1 (Daniel Gustafsson) \u003ca href=\"https://postgr.es/c/a70e01d43\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/6c66b7443\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-c729ed080047e9a6","identity_text":"Remove support for OpenSSL versions older than 1.1.1 (Daniel Gustafsson)","part":"changes","patch_ids":["abb2eed446c79007a20dabd90ec11e07","e230f75c4521f002154fbc695ab93e0a"],"related_changes":[],"relations":[],"section":"Source Code","section_path":["Source Code"],"source_commits":["6c66b7443","a70e01d43"],"source_entry_id":"18.0/changes/169","source_hash":"fef36e34b98c4cf8afc0e87fda7cd8014955b79b409cd798e1776f2cbb3cc19d","source_url":"/docs/release/18.0/#RELEASE-18-SOURCE-CODE","statement_hash":"c8e7dae9a85d85423b23da56e2d21b96b7f26438f93b7ac8c175a38b66b24100","text":"Remove support for OpenSSL versions older than 1.1.1 (Daniel Gustafsson) § §","title":"Remove support for OpenSSL versions older than 1.1.1","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["972c2cd28"],"commit_groups":[["972c2cd28"]],"commits":["972c2cd28"],"cves":[],"db_id":"50c7a44be3192eea399751ed1200e8e8","html":"\u003cp\u003eIf \u003cspan\u003eLLVM\u003c/span\u003e is enabled, require version 14 or later (Thomas Munro) \u003ca href=\"https://postgr.es/c/972c2cd28\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-48539960f4e6144e","identity_text":"If LLVM is enabled, require version 14 or later (Thomas Munro)","part":"changes","patch_ids":["8a4ef85fef8148a0752a6381c6a739bb"],"related_changes":[],"relations":[],"section":"Source Code","section_path":["Source Code"],"source_commits":["972c2cd28"],"source_entry_id":"18.0/changes/170","source_hash":"312a91a833836d352538d85b42e2e70e2f3593c02b219f7e95f80da5e10bfaf4","source_url":"/docs/release/18.0/#RELEASE-18-SOURCE-CODE","statement_hash":"36fc6c5974c10ca846263ab84a10c91abb0ab4d1f95effb5f1513c71c37a4bbe","text":"If LLVM is enabled, require version 14 or later (Thomas Munro) §","title":"If LLVM is enabled, require version 14 or later","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["9324c8c58"],"commit_groups":[["9324c8c58"]],"commits":["9324c8c58"],"cves":[],"db_id":"22bad4a55bc766af423a30b6bf1b99b9","html":"\u003cp\u003eAdd macro \u003ca href=\"/docs/18/functions-info.html\" title=\"9.27. System Information Functions and Operators\"\u003e\u003ccode\u003ePG_MODULE_MAGIC_EXT\u003c/code\u003e\u003c/a\u003e to allow extensions to report their name and version (Andrei Lepikhov) \u003ca href=\"https://postgr.es/c/9324c8c58\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis information can be access via the new function \u003ca href=\"/docs/18/functions-info.html#FUNCTIONS-INFO-SESSION-TABLE\" title=\"Table 9.71. Session Information Functions\"\u003e\u003ccode\u003epg_get_loaded_modules()\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e","id":"18.0-cc466a564036d579","identity_text":"Add macro PG_MODULE_MAGIC_EXT to allow extensions to report their name and version (Andrei Lepikhov) This information can be access via the new function pg_get_loaded_modules().","part":"changes","patch_ids":["ed1ff647f1c305bd35f657351b9a7adf"],"related_changes":[],"relations":[],"section":"Source Code","section_path":["Source Code"],"source_commits":["9324c8c58"],"source_entry_id":"18.0/changes/171","source_hash":"473925ca43927bf0fecf0ebb8b99b79703e70fb6920ef16d9a6197b242837012","source_url":"/docs/release/18.0/#RELEASE-18-SOURCE-CODE","statement_hash":"b4515add36ae14827b8bf37983849f8407d2e2de81d57662cf8c2e42fb2dc367","text":"Add macro PG_MODULE_MAGIC_EXT to allow extensions to report their name and version (Andrei Lepikhov) § This information can be access via the new function pg_get_loaded_modules().","title":"Add macro PG_MODULE_MAGIC_EXT to allow extensions to report their name and version","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["218527d01"],"commit_groups":[["218527d01"]],"commits":["218527d01"],"cves":[],"db_id":"6c9d752ad2524932db7f67c114ea208c","html":"\u003cp\u003eDocument that \u003ca href=\"/docs/18/spi-spi-connect.html\" title=\"SPI_connect\"\u003e\u003ccode\u003eSPI_connect()\u003c/code\u003e\u003c/a\u003e/\u003ca href=\"/docs/18/spi-spi-connect.html\" title=\"SPI_connect\"\u003e\u003ccode\u003eSPI_connect_ext()\u003c/code\u003e\u003c/a\u003e always returns success (\u003ccode\u003eSPI_OK_CONNECT\u003c/code\u003e) (Stepan Neretin) \u003ca href=\"https://postgr.es/c/218527d01\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eErrors are always reported via \u003ccode\u003eereport()\u003c/code\u003e.\u003c/p\u003e","id":"18.0-1f7ee7beb9720d96","identity_text":"Document that SPI_connect()/SPI_connect_ext() always returns success (SPI_OK_CONNECT) (Stepan Neretin) Errors are always reported via ereport().","part":"changes","patch_ids":["8db80b5d2f22fef141642ab40ac0c845"],"related_changes":[],"relations":[],"section":"Source Code","section_path":["Source Code"],"source_commits":["218527d01"],"source_entry_id":"18.0/changes/172","source_hash":"aa52b5fa421b28ab0bc7e593947371732a940dc52c961ec9185e124ddf4d35ff","source_url":"/docs/release/18.0/#RELEASE-18-SOURCE-CODE","statement_hash":"67c11936fe67155db84d081f3909f3742a03731f80e2342d6e16669433687aba","text":"Document that SPI_connect()/SPI_connect_ext() always returns success (SPI_OK_CONNECT) (Stepan Neretin) § Errors are always reported via ereport().","title":"Document that SPI_connect()/SPI_connect_ext() always returns success (SPI_OK_CONNECT)","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["e54a42ac9"],"commit_groups":[["e54a42ac9"]],"commits":["e54a42ac9"],"cves":[],"db_id":"bce92895bdc4d2128762d0826b82afe5","html":"\u003cp\u003eAdd \u003ca href=\"/docs/18/xfunc-c.html#XFUNC-API-ABI-STABILITY-GUIDANCE\" title=\"36.10.6. Server API and ABI Stability Guidance\"\u003edocumentation section\u003c/a\u003e about \u003cacronym\u003eAPI\u003c/acronym\u003e and \u003cacronym\u003eABI\u003c/acronym\u003e compatibility (David Wheeler, Peter Eisentraut) \u003ca href=\"https://postgr.es/c/e54a42ac9\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-dbb8c166c369ad8f","identity_text":"Add documentation section about API and ABI compatibility (David Wheeler, Peter Eisentraut)","part":"changes","patch_ids":["ed9bc344aa72386c8e767c718632ec82"],"related_changes":[],"relations":[],"section":"Source Code","section_path":["Source Code"],"source_commits":["e54a42ac9"],"source_entry_id":"18.0/changes/173","source_hash":"90c971529d419760d77397cb587a82b521c16886289aebdd0a9950e6910000f9","source_url":"/docs/release/18.0/#RELEASE-18-SOURCE-CODE","statement_hash":"0295a4b203df0b9501cc58312ecd1041db9220faa5a8a3ae88d0fb981ee922f4","text":"Add documentation section about API and ABI compatibility (David Wheeler, Peter Eisentraut) §","title":"Add documentation section about API and ABI compatibility","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["5afaba629"],"commit_groups":[["5afaba629"]],"commits":["5afaba629"],"cves":[],"db_id":"65f45b8de45e88579fb3a07c1fc5ca82","html":"\u003cp\u003eRemove the experimental designation of \u003cspan\u003eMeson\u003c/span\u003e builds on \u003cspan\u003eWindows\u003c/span\u003e (Aleksander Alekseev) \u003ca href=\"https://postgr.es/c/5afaba629\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-c62188fa02597863","identity_text":"Remove the experimental designation of Meson builds on Windows (Aleksander Alekseev)","part":"changes","patch_ids":["7f3733853ec88ef6dcc506c3f311ca02"],"related_changes":[],"relations":[],"section":"Source Code","section_path":["Source Code"],"source_commits":["5afaba629"],"source_entry_id":"18.0/changes/174","source_hash":"6fa8dda0e2cd9ac5555c784bf5c0ef8242c1206143e83bc3f734bc4ebaecdc2a","source_url":"/docs/release/18.0/#RELEASE-18-SOURCE-CODE","statement_hash":"4b791d0ce6d561df0dc9266dbc1c032420c8b1a17d776165cd28778ec4824762","text":"Remove the experimental designation of Meson builds on Windows (Aleksander Alekseev) §","title":"Remove the experimental designation of Meson builds on Windows","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["813852613","e25626677"],"commit_groups":[["813852613"],["e25626677"]],"commits":["813852613","e25626677"],"cves":[],"db_id":"cb76202d341bfde3157c7f5662fdca08","html":"\u003cp\u003eRemove configure options \u003ccode\u003e--disable-spinlocks\u003c/code\u003e and \u003ccode\u003e--disable-atomics\u003c/code\u003e (Thomas Munro) \u003ca href=\"https://postgr.es/c/e25626677\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/813852613\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThirty-two-bit atomic operations are now required.\u003c/p\u003e","id":"18.0-b529394c7414f821","identity_text":"Remove configure options --disable-spinlocks and --disable-atomics (Thomas Munro) Thirty-two-bit atomic operations are now required.","part":"changes","patch_ids":["1adba83a13269f9fe1796e4c938f5668","c5a68b790cc12df3a522cd1c85e50f75"],"related_changes":[],"relations":[],"section":"Source Code","section_path":["Source Code"],"source_commits":["813852613","e25626677"],"source_entry_id":"18.0/changes/175","source_hash":"dea8d45db1e65b97fa1c42d83d77ae1a21b44ff4bf947e134c0ae0c51fec84eb","source_url":"/docs/release/18.0/#RELEASE-18-SOURCE-CODE","statement_hash":"f075e693a989fc62b94be60cc6414f54094d772e3fc9f2cc5a1a1beefdca9437","text":"Remove configure options --disable-spinlocks and --disable-atomics (Thomas Munro) § § Thirty-two-bit atomic operations are now required.","title":"Remove configure options --disable-spinlocks and --disable-atomics","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["edadeb071"],"commit_groups":[["edadeb071"]],"commits":["edadeb071"],"cves":[],"db_id":"a167452f08dbddf1b2de4b6f87175253","html":"\u003cp\u003eRemove support for the \u003cacronym\u003eHPPA\u003c/acronym\u003e/\u003cacronym\u003ePA-RISC\u003c/acronym\u003e architecture (Tom Lane) \u003ca href=\"https://postgr.es/c/edadeb071\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-e16d84f131471052","identity_text":"Remove support for the HPPA/PA-RISC architecture (Tom Lane)","part":"changes","patch_ids":["4c7fcd694e4cfcfdf4d2b66e07bcc93b"],"related_changes":[],"relations":[],"section":"Source Code","section_path":["Source Code"],"source_commits":["edadeb071"],"source_entry_id":"18.0/changes/176","source_hash":"8f4d3cb0f0e25fcd326fb98621d0aefc3e51c019fd35d16cfdf8c01567fe96be","source_url":"/docs/release/18.0/#RELEASE-18-SOURCE-CODE","statement_hash":"34e0e62ec64cf13e242497f80e1704894b16ff8d2f43db397bcdbb5fd4d87a42","text":"Remove support for the HPPA/PA-RISC architecture (Tom Lane) §","title":"Remove support for the HPPA/PA-RISC architecture","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["7cdfeee32"],"commit_groups":[["7cdfeee32"]],"commits":["7cdfeee32"],"cves":[],"db_id":"67c4f0ce87d750c9d1fc47621ad4ca18","html":"\u003cp\u003eAdd extension \u003ca href=\"/docs/18/pglogicalinspect.html\" title=\"F.28. pg_logicalinspect — logical decoding components inspection\"\u003epg_logicalinspect\u003c/a\u003e to inspect logical snapshots (Bertrand Drouvot) \u003ca href=\"https://postgr.es/c/7cdfeee32\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-7290fc125f61d724","identity_text":"Add extension pglogicalinspect to inspect logical snapshots (Bertrand Drouvot)","part":"changes","patch_ids":["a7b197beccb692abf2aeb8c35a0a48a1"],"related_changes":[],"relations":[],"section":"Additional Modules","section_path":["Additional Modules"],"source_commits":["7cdfeee32"],"source_entry_id":"18.0/changes/177","source_hash":"2687560225facdefa50011e45e121f7d2ba43f8c8dbd44cf574154afa1445beb","source_url":"/docs/release/18.0/#RELEASE-18-MODULES","statement_hash":"aacda762c76e2c1fbfdaa69e9c927a9740a1692b0b61c349e5016a3c3b699a0a","text":"Add extension pg_logicalinspect to inspect logical snapshots (Bertrand Drouvot) §","title":"Add extension pg_logicalinspect to inspect logical snapshots","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["8d5ceb113"],"commit_groups":[["8d5ceb113"]],"commits":["8d5ceb113"],"cves":[],"db_id":"87a2dbbbebd8175b5bf005cb3cfc67ca","html":"\u003cp\u003eAdd extension \u003ca href=\"/docs/18/pgoverexplain.html\" title=\"F.29. pg_overexplain — allow EXPLAIN to dump even more details\"\u003epg_overexplain\u003c/a\u003e which adds debug details to \u003ca href=\"/docs/18/sql-explain.html\" title=\"EXPLAIN\"\u003e\u003ccode\u003eEXPLAIN\u003c/code\u003e\u003c/a\u003e output (Robert Haas) \u003ca href=\"https://postgr.es/c/8d5ceb113\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-b013c231e39d5be8","identity_text":"Add extension pgoverexplain which adds debug details to EXPLAIN output (Robert Haas)","part":"changes","patch_ids":["2ed4181cb477cdca663a38f91a5f217c"],"related_changes":[],"relations":[],"section":"Additional Modules","section_path":["Additional Modules"],"source_commits":["8d5ceb113"],"source_entry_id":"18.0/changes/178","source_hash":"7515ce17b867bfaab97a731353d79de47d4cad8cb11c156dc88cd77a008a3e6a","source_url":"/docs/release/18.0/#RELEASE-18-MODULES","statement_hash":"d9fca54d692a23040461084ec35270936c31625992377c566a8c37899f1f0787","text":"Add extension pg_overexplain which adds debug details to EXPLAIN output (Robert Haas) §","title":"Add extension pg_overexplain which adds debug details to EXPLAIN output","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["4f08ab554","857df3cef","c297a47c5","fe186bda7"],"commit_groups":[["4f08ab554"],["857df3cef"],["c297a47c5"],["fe186bda7"]],"commits":["4f08ab554","857df3cef","c297a47c5","fe186bda7"],"cves":[],"db_id":"57766a54c36633792199e697fc70e7df","html":"\u003cp\u003eAdd output columns to \u003ca href=\"/docs/18/postgres-fdw.html#POSTGRES-FDW-FUNCTIONS\" title=\"F.38.2. Functions\"\u003e\u003ccode\u003epostgres_fdw_get_connections()\u003c/code\u003e\u003c/a\u003e (Hayato Kuroda, Sagar Dilip Shedge) \u003ca href=\"https://postgr.es/c/c297a47c5\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/857df3cef\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/4f08ab554\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/fe186bda7\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eNew output column \u003ccode\u003eused_in_xact\u003c/code\u003e indicates if the foreign data wrapper is being used by a current transaction, \u003ccode\u003eclosed\u003c/code\u003e indicates if it is closed, \u003ccode\u003euser_name\u003c/code\u003e indicates the user name, and \u003ccode\u003eremote_backend_pid\u003c/code\u003e indicates the remote backend process identifier.\u003c/p\u003e","id":"18.0-4831466123b6482b","identity_text":"Add output columns to postgres_fdw_get_connections() (Hayato Kuroda, Sagar Dilip Shedge) New output column used_in_xact indicates if the foreign data wrapper is being used by a current transaction, closed indicates if it is closed, user_name indicates the user name, and remote_backend_pid indicates the remote backend process identifier.","part":"changes","patch_ids":["69b3dae14669bd99116e5c32e7ce74b0","6a1a0a8505001d8b25302d12068877e7","c0a12ec1a2d53150c1b560fb21c4539c","d67e56f99dc5bb1eb71cebb589bee3a5"],"related_changes":[],"relations":[],"section":"Additional Modules","section_path":["Additional Modules"],"source_commits":["4f08ab554","857df3cef","c297a47c5","fe186bda7"],"source_entry_id":"18.0/changes/179","source_hash":"2757fb81880ea4eb26d1e4463218e9a19e266a0e629f94c057cb3aec12bcea56","source_url":"/docs/release/18.0/#RELEASE-18-MODULES","statement_hash":"3720900a35e82886147a69fd3730383d5206cad9f0e7aafdf9a19742425cfc42","text":"Add output columns to postgres_fdw_get_connections() (Hayato Kuroda, Sagar Dilip Shedge) § § § § New output column used_in_xact indicates if the foreign data wrapper is being used by a current transaction, closed indicates if it is closed, user_name indicates the user name, and remote_backend_pid indicates the remote backend process identifier.","title":"Add output columns to postgres_fdw_get_connections()","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["761c79508"],"commit_groups":[["761c79508"]],"commits":["761c79508"],"cves":[],"db_id":"e470a9bf401deab26d02f6095d0d4417","html":"\u003cp\u003eAllow \u003ca href=\"/docs/18/auth-password.html\" title=\"20.5. Password Authentication\"\u003e\u003cacronym\u003eSCRAM\u003c/acronym\u003e\u003c/a\u003e authentication from the client to be passed to \u003ca href=\"/docs/18/postgres-fdw.html\" title=\"F.38. postgres_fdw — access data stored in external PostgreSQL servers\"\u003epostgres_fdw\u003c/a\u003e servers (Matheus Alcantara, Peter Eisentraut) \u003ca href=\"https://postgr.es/c/761c79508\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis avoids storing \u003cspan\u003epostgres_fdw\u003c/span\u003e authentication information in the database, and is enabled with the \u003cspan\u003epostgres_fdw\u003c/span\u003e \u003ca href=\"/docs/18/postgres-fdw.html#POSTGRES-FDW-OPTION-USE-SCRAM-PASSTHROUGH\"\u003e\u003ccode\u003euse_scram_passthrough\u003c/code\u003e\u003c/a\u003e connection option. libpq uses new connection parameters \u003ca href=\"/docs/18/libpq-connect.html#LIBPQ-CONNECT-SCRAM-CLIENT-KEY\"\u003escram_client_key\u003c/a\u003e and \u003ca href=\"/docs/18/libpq-connect.html#LIBPQ-CONNECT-SCRAM-SERVER-KEY\"\u003escram_server_key\u003c/a\u003e.\u003c/p\u003e","id":"18.0-5519d2468e9d5ea2","identity_text":"Allow SCRAM authentication from the client to be passed to postgres-fdw servers (Matheus Alcantara, Peter Eisentraut) This avoids storing postgres_fdw authentication information in the database, and is enabled with the postgres_fdw use_scram_passthrough connection option. libpq uses new connection parameters libpq-connect-scram-client-key and libpq-connect-scram-server-key .","part":"changes","patch_ids":["af2270afccff9e2eee136add3ddf9516"],"related_changes":[],"relations":[],"section":"Additional Modules","section_path":["Additional Modules"],"source_commits":["761c79508"],"source_entry_id":"18.0/changes/180","source_hash":"5acf9481abc4c3c8dc1300ade55bcee491bededaef10ba7b4c9d16ee213d4b3f","source_url":"/docs/release/18.0/#RELEASE-18-MODULES","statement_hash":"7752ceee84e239333dabe3abd26dcd183aad92846d5412c6919e21ed04e49920","text":"Allow SCRAM authentication from the client to be passed to postgres_fdw servers (Matheus Alcantara, Peter Eisentraut) § This avoids storing postgres_fdw authentication information in the database, and is enabled with the postgres_fdw use_scram_passthrough connection option. libpq uses new connection parameters scram_client_key and scram_server_key.","title":"Allow SCRAM authentication from the client to be passed to postgres_fdw servers","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["3642df265"],"commit_groups":[["3642df265"]],"commits":["3642df265"],"cves":[],"db_id":"db82382f896f8242594f26f0e98cd318","html":"\u003cp\u003eAllow \u003cacronym\u003eSCRAM\u003c/acronym\u003e authentication from the client to be passed to \u003ca href=\"/docs/18/dblink.html\" title=\"F.11. dblink — connect to other PostgreSQL databases\"\u003edblink\u003c/a\u003e servers (Matheus Alcantara) \u003ca href=\"https://postgr.es/c/3642df265\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-40e7df9bbd01fbdd","identity_text":"Allow SCRAM authentication from the client to be passed to dblink servers (Matheus Alcantara)","part":"changes","patch_ids":["071743b3a560980bed101b42da01a888"],"related_changes":[],"relations":[],"section":"Additional Modules","section_path":["Additional Modules"],"source_commits":["3642df265"],"source_entry_id":"18.0/changes/181","source_hash":"d5d459964678c5f8377c3bd875649fc44172ce4cb2a1b6401f0950b80fc6ba4a","source_url":"/docs/release/18.0/#RELEASE-18-MODULES","statement_hash":"606c662a7292efbe14169ab67273e036f3695f6e116ffb4735ab23da0a7f3415","text":"Allow SCRAM authentication from the client to be passed to dblink servers (Matheus Alcantara) §","title":"Allow SCRAM authentication from the client to be passed to dblink servers","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["a1c4c8a9e"],"commit_groups":[["a1c4c8a9e"]],"commits":["a1c4c8a9e"],"cves":[],"db_id":"6982b0c41f58b8ad05599dd36f57aaa9","html":"\u003cp\u003eAdd \u003ccode\u003eon_error\u003c/code\u003e and \u003ccode\u003elog_verbosity\u003c/code\u003e options to \u003ca href=\"/docs/18/file-fdw.html\" title=\"F.15. file_fdw — access data files in the server's file system\"\u003efile_fdw\u003c/a\u003e (Atsushi Torikoshi) \u003ca href=\"https://postgr.es/c/a1c4c8a9e\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThese control how \u003cspan\u003efile_fdw\u003c/span\u003e handles and reports invalid file rows.\u003c/p\u003e","id":"18.0-be0a5c377c8ad1d6","identity_text":"Add on_error and log_verbosity options to file-fdw (Atsushi Torikoshi) These control how file_fdw handles and reports invalid file rows.","part":"changes","patch_ids":["21992e0340c7459eca57bac98530eee3"],"related_changes":[],"relations":[],"section":"Additional Modules","section_path":["Additional Modules"],"source_commits":["a1c4c8a9e"],"source_entry_id":"18.0/changes/182","source_hash":"115a0c8a418b7106acd2734d853b844db562b082c4bda8f83428f4e298314284","source_url":"/docs/release/18.0/#RELEASE-18-MODULES","statement_hash":"c5180a0af1dd4fdd3162754e1b488f348273f6c2f9209b82ebf3d374fabffd98","text":"Add on_error and log_verbosity options to file_fdw (Atsushi Torikoshi) § These control how file_fdw handles and reports invalid file rows.","title":"Add on_error and log_verbosity options to file_fdw","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["6c8f67032"],"commit_groups":[["6c8f67032"]],"commits":["6c8f67032"],"cves":[],"db_id":"48a8faf8ec485497fca4db2bacbaeab7","html":"\u003cp\u003eAdd \u003ccode\u003ereject_limit\u003c/code\u003e to control the number of invalid rows \u003cspan\u003efile_fdw\u003c/span\u003e can ignore (Atsushi Torikoshi) \u003ca href=\"https://postgr.es/c/6c8f67032\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is active when \u003ccode\u003eON_ERROR = 'ignore'\u003c/code\u003e.\u003c/p\u003e","id":"18.0-d073f00449dd1fe3","identity_text":"Add reject_limit to control the number of invalid rows file_fdw can ignore (Atsushi Torikoshi) This is active when ON_ERROR = 'ignore'.","part":"changes","patch_ids":["5b6c0783ca982f9138e4795b3e829d8a"],"related_changes":[],"relations":[],"section":"Additional Modules","section_path":["Additional Modules"],"source_commits":["6c8f67032"],"source_entry_id":"18.0/changes/183","source_hash":"914ef144cb149e5828a4af2d2b3498fdd849dab913c363a52d16e74e3911885f","source_url":"/docs/release/18.0/#RELEASE-18-MODULES","statement_hash":"731012e4db71426106868c5367cd50ce2ef63f3770862fd07904f6a9a0245032","text":"Add reject_limit to control the number of invalid rows file_fdw can ignore (Atsushi Torikoshi) § This is active when ON_ERROR = 'ignore'.","title":"Add reject_limit to control the number of invalid rows file_fdw can ignore","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["f7e1b3828"],"commit_groups":[["f7e1b3828"]],"commits":["f7e1b3828"],"cves":[],"db_id":"c2f3e4981e48c781d80d8d683bfeafdc","html":"\u003cp\u003eAdd configurable variable \u003ccode\u003emin_password_length\u003c/code\u003e to \u003ca href=\"/docs/18/passwordcheck.html\" title=\"F.24. passwordcheck — verify password strength\"\u003epasswordcheck\u003c/a\u003e (Emanuele Musella, Maurizio Boriani) \u003ca href=\"https://postgr.es/c/f7e1b3828\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis controls the minimum password length.\u003c/p\u003e","id":"18.0-633e2729df5f6460","identity_text":"Add configurable variable min_password_length to passwordcheck (Emanuele Musella, Maurizio Boriani) This controls the minimum password length.","part":"changes","patch_ids":["8adca4662ef9e316e20e61eac39f5953"],"related_changes":[],"relations":[],"section":"Additional Modules","section_path":["Additional Modules"],"source_commits":["f7e1b3828"],"source_entry_id":"18.0/changes/184","source_hash":"1b94e879146707658c8624a2cc1d0d5d51823ca6cec56d81901b4e94cb11b78c","source_url":"/docs/release/18.0/#RELEASE-18-MODULES","statement_hash":"3c96a08392c835400e1601043498429b0df9c4a3c6205b65fa827329a880c71d","text":"Add configurable variable min_password_length to passwordcheck (Emanuele Musella, Maurizio Boriani) § This controls the minimum password length.","title":"Add configurable variable min_password_length to passwordcheck","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["cae0f3c40"],"commit_groups":[["cae0f3c40"]],"commits":["cae0f3c40"],"cves":[],"db_id":"7d68f2a4e71d87ab7e6b4494d5b3c176","html":"\u003cp\u003eHave \u003ca href=\"/docs/18/pgbench.html\" title=\"pgbench\"\u003e\u003cspan\u003e\u003cspan\u003epgbench\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e report the number of failed, retried, or skipped transactions in per-script reports (Yugo Nagata) \u003ca href=\"https://postgr.es/c/cae0f3c40\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-ccb942ad8d145ac9","identity_text":"Have pgbench report the number of failed, retried, or skipped transactions in per-script reports (Yugo Nagata)","part":"changes","patch_ids":["7ae9139da216927d66da497ea952bf95"],"related_changes":[],"relations":[],"section":"Additional Modules","section_path":["Additional Modules"],"source_commits":["cae0f3c40"],"source_entry_id":"18.0/changes/185","source_hash":"b6ab8471bd55acbc24e7b6d8e4dbc4490126311ba216112a2325d59926d09340","source_url":"/docs/release/18.0/#RELEASE-18-MODULES","statement_hash":"18f1805b3f36c44aa22e9a7c871bfc854cae06d2d1ba7d54f1c9ef8c03dabac0","text":"Have pgbench report the number of failed, retried, or skipped transactions in per-script reports (Yugo Nagata) §","title":"Have pgbench report the number of failed, retried, or skipped transactions in per-script reports","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["448904423"],"commit_groups":[["448904423"]],"commits":["448904423"],"cves":[],"db_id":"5f8aee170ab63cf20094d429feccf7c0","html":"\u003cp\u003eAdd \u003ca href=\"/docs/18/isn.html\" title=\"F.20. isn — data types for international standard numbers (ISBN, EAN, UPC, etc.)\"\u003eisn\u003c/a\u003e server variable \u003ccode\u003eweak\u003c/code\u003e to control invalid check digit acceptance (Viktor Holmberg) \u003ca href=\"https://postgr.es/c/448904423\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis was previously only controlled by function \u003ca href=\"/docs/18/isn.html#ISN-FUNCTIONS\" title=\"Table F.11. isn Functions\"\u003e\u003ccode\u003eisn_weak()\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e","id":"18.0-6929095b04fe5b40","identity_text":"Add isn server variable weak to control invalid check digit acceptance (Viktor Holmberg) This was previously only controlled by function isn_weak().","part":"changes","patch_ids":["18f9d78d0b131468273798f1c5d15c6f"],"related_changes":[],"relations":[],"section":"Additional Modules","section_path":["Additional Modules"],"source_commits":["448904423"],"source_entry_id":"18.0/changes/186","source_hash":"02b17a33ef29c5ffa267140e9614fd175f35fb008501832e4e8b2738b89ccc04","source_url":"/docs/release/18.0/#RELEASE-18-MODULES","statement_hash":"5acf45b1736bba51038a52d3be296633c8f71d63e863e5b4fa2a8bd6b564504e","text":"Add isn server variable weak to control invalid check digit acceptance (Viktor Holmberg) § This was previously only controlled by function isn_weak().","title":"Add isn server variable weak to control invalid check digit acceptance","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["e4309f73f"],"commit_groups":[["e4309f73f"]],"commits":["e4309f73f"],"cves":[],"db_id":"7e911d1361965be0a82fa600d4ebef9d","html":"\u003cp\u003eAllow values to be sorted to speed \u003ca href=\"/docs/18/btree-gist.html\" title=\"F.8. btree_gist — GiST operator classes with B-tree behavior\"\u003ebtree_gist\u003c/a\u003e index builds (Bernd Helmle, Andrey Borodin) \u003ca href=\"https://postgr.es/c/e4309f73f\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-f65afd9fd3a24d96","identity_text":"Allow values to be sorted to speed btree-gist index builds (Bernd Helmle, Andrey Borodin)","part":"changes","patch_ids":["cffdd969af417cd314b82e92cb6a914f"],"related_changes":[],"relations":[],"section":"Additional Modules","section_path":["Additional Modules"],"source_commits":["e4309f73f"],"source_entry_id":"18.0/changes/187","source_hash":"212669f707e1fce095f4a15af5bba9c3db22d8a44760a389af1d2d2f668d8dde","source_url":"/docs/release/18.0/#RELEASE-18-MODULES","statement_hash":"cebec6909a36bdf2166bf54e64bff4c820d6b198d1e688f1c4007e765cf72614","text":"Allow values to be sorted to speed btree_gist index builds (Bernd Helmle, Andrey Borodin) §","title":"Allow values to be sorted to speed btree_gist index builds","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["14ffaece0"],"commit_groups":[["14ffaece0"]],"commits":["14ffaece0"],"cves":[],"db_id":"901639a50d26960109ceeaf20c9a6525","html":"\u003cp\u003eAdd \u003ca href=\"/docs/18/amcheck.html\" title=\"F.1. amcheck — tools to verify table and index consistency\"\u003eamcheck\u003c/a\u003e check function \u003ca href=\"/docs/18/amcheck.html#AMCHECK-FUNCTIONS\" title=\"F.1.1. Functions\"\u003e\u003ccode\u003egin_index_check()\u003c/code\u003e\u003c/a\u003e to verify \u003ccode\u003eGIN\u003c/code\u003e indexes (Grigory Kryachko, Heikki Linnakangas, Andrey Borodin) \u003ca href=\"https://postgr.es/c/14ffaece0\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-d35d4aa1899363aa","identity_text":"Add amcheck check function gin_index_check() to verify GIN indexes (Grigory Kryachko, Heikki Linnakangas, Andrey Borodin)","part":"changes","patch_ids":["3da01d3c7aa186dc71d957e208a485dc"],"related_changes":[],"relations":[],"section":"Additional Modules","section_path":["Additional Modules"],"source_commits":["14ffaece0"],"source_entry_id":"18.0/changes/188","source_hash":"e92d948d2ddc6876642e73f177289d6b41bb2fe21922122f6e1e7eeaf83fff3c","source_url":"/docs/release/18.0/#RELEASE-18-MODULES","statement_hash":"da2898009fd05a775abd078506b5f09c6e8b1e8fec26d605efd008c0d231dab0","text":"Add amcheck check function gin_index_check() to verify GIN indexes (Grigory Kryachko, Heikki Linnakangas, Andrey Borodin) §","title":"Add amcheck check function gin_index_check() to verify GIN indexes","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["dcf7e1697"],"commit_groups":[["dcf7e1697"]],"commits":["dcf7e1697"],"cves":[],"db_id":"53a630578a75630174d2c269609886e6","html":"\u003cp\u003eAdd functions \u003ca href=\"/docs/18/pgbuffercache.html#PGBUFFERCACHE-PG-BUFFERCACHE-EVICT-RELATION\" title=\"F.25.6. The pg_buffercache_evict_relation() Function\"\u003e\u003ccode\u003epg_buffercache_evict_relation()\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"/docs/18/pgbuffercache.html#PGBUFFERCACHE-PG-BUFFERCACHE-EVICT-ALL\" title=\"F.25.7. The pg_buffercache_evict_all() Function\"\u003e\u003ccode\u003epg_buffercache_evict_all()\u003c/code\u003e\u003c/a\u003e to evict unpinned shared buffers (Nazir Bilal Yavuz) \u003ca href=\"https://postgr.es/c/dcf7e1697\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe existing function \u003ca href=\"/docs/18/pgbuffercache.html#PGBUFFERCACHE-PG-BUFFERCACHE-EVICT\" title=\"F.25.5. The pg_buffercache_evict() Function\"\u003e\u003ccode\u003epg_buffercache_evict()\u003c/code\u003e\u003c/a\u003e now returns the buffer flush status.\u003c/p\u003e","id":"18.0-a511612dd1dbda61","identity_text":"Add functions pg_buffercache_evict_relation() and pg_buffercache_evict_all() to evict unpinned shared buffers (Nazir Bilal Yavuz) The existing function pg_buffercache_evict() now returns the buffer flush status.","part":"changes","patch_ids":["18bc743ec0e02f2bfdd5e711a373a351"],"related_changes":[],"relations":[],"section":"Additional Modules","section_path":["Additional Modules"],"source_commits":["dcf7e1697"],"source_entry_id":"18.0/changes/189","source_hash":"ff8384fcca3171ad9ba328245edab24a7394c982bd1ee80a16272f59622034c3","source_url":"/docs/release/18.0/#RELEASE-18-MODULES","statement_hash":"741214ec5c0080df2f48fe0ecb949fe4d8cc9dcffc25225e8d4f433bd4032752","text":"Add functions pg_buffercache_evict_relation() and pg_buffercache_evict_all() to evict unpinned shared buffers (Nazir Bilal Yavuz) § The existing function pg_buffercache_evict() now returns the buffer flush status.","title":"Add functions pg_buffercache_evict_relation() and pg_buffercache_evict_all() to evict unpinned shared buffers","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["4fd02bf7c","50ba65e73","c65bc2e1d"],"commit_groups":[["4fd02bf7c"],["50ba65e73"],["c65bc2e1d"]],"commits":["4fd02bf7c","50ba65e73","c65bc2e1d"],"cves":[],"db_id":"17128679b68e62fcef0d48d266afb493","html":"\u003cp\u003eAllow extensions to install custom \u003ca href=\"/docs/18/sql-explain.html\" title=\"EXPLAIN\"\u003e\u003cspan\u003eEXPLAIN\u003c/span\u003e\u003c/a\u003e options (Robert Haas, Sami Imseih) \u003ca href=\"https://postgr.es/c/c65bc2e1d\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/4fd02bf7c\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/50ba65e73\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-d112bddfd7837836","identity_text":"Allow extensions to install custom sql-explain options (Robert Haas, Sami Imseih)","part":"changes","patch_ids":["4a90cb7809dd3268e814052cb9d568f6","a7446b42cbf558abedd81726ef25be11","b1d23fea200234c95397b7e93fd14848"],"related_changes":[],"relations":[],"section":"Additional Modules","section_path":["Additional Modules"],"source_commits":["4fd02bf7c","50ba65e73","c65bc2e1d"],"source_entry_id":"18.0/changes/190","source_hash":"126c1e252fd401d5cbcf8667b52299d2f5510b10142a7ea6310dcbba82c8bd12","source_url":"/docs/release/18.0/#RELEASE-18-MODULES","statement_hash":"e8646573cbbb7286af9b4ad50cc583bc6310d49c513b0e947a6bca0270e16301","text":"Allow extensions to install custom EXPLAIN options (Robert Haas, Sami Imseih) § § §","title":"Allow extensions to install custom EXPLAIN options","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["2eff9e678","7949d9594"],"commit_groups":[["2eff9e678"],["7949d9594"]],"commits":["2eff9e678","7949d9594"],"cves":[],"db_id":"51ed37dd51200e7f7a59592baf05f997","html":"\u003cp\u003eAllow extensions to use the server's cumulative statistics \u003cacronym\u003eAPI\u003c/acronym\u003e (Michael Paquier) \u003ca href=\"https://postgr.es/c/7949d9594\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/2eff9e678\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-72dccadf752b71eb","identity_text":"Allow extensions to use the server's cumulative statistics API (Michael Paquier)","part":"changes","patch_ids":["3eb79f54769a802749d52f97f9f8c4cd","4af802e5801cb1008a49bbd7ffb1b4c6"],"related_changes":[],"relations":[],"section":"Additional Modules","section_path":["Additional Modules"],"source_commits":["2eff9e678","7949d9594"],"source_entry_id":"18.0/changes/191","source_hash":"7611ce1609aa627ae59449ba16bf0a6a11d238cb4b3f48d277fa6399e2615ef5","source_url":"/docs/release/18.0/#RELEASE-18-MODULES","statement_hash":"a6e76441b49e4dfc8c5b6323c846f1efe63f20730e0cc0450e6f197b1eb9b2a0","text":"Allow extensions to use the server's cumulative statistics API (Michael Paquier) § §","title":"Allow extensions to use the server's cumulative statistics API","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["6b652e6ce"],"commit_groups":[["6b652e6ce"]],"commits":["6b652e6ce"],"cves":[],"db_id":"222e3bfb3e07da2a4bb138e9b89a9ea9","html":"\u003cp\u003eAllow the queries of \u003ca href=\"/docs/18/sql-createtableas.html\" title=\"CREATE TABLE AS\"\u003e\u003cspan\u003eCREATE TABLE AS\u003c/span\u003e\u003c/a\u003e and \u003ca href=\"/docs/18/sql-declare.html\" title=\"DECLARE\"\u003e\u003cspan\u003eDECLARE\u003c/span\u003e\u003c/a\u003e to be tracked by \u003cspan\u003epg_stat_statements\u003c/span\u003e (Anthonin Bonnefoy) \u003ca href=\"https://postgr.es/c/6b652e6ce\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThey are also now assigned query ids.\u003c/p\u003e","id":"18.0-f9d180ce3867ba06","identity_text":"Allow the queries of sql-createtableas and sql-declare to be tracked by pg_stat_statements (Anthonin Bonnefoy) They are also now assigned query ids.","part":"changes","patch_ids":["6f27bba477d5d34ec287e6d1f0cb4c01"],"related_changes":[],"relations":[],"section":"Additional Modules / pg_stat_statements","section_path":["Additional Modules","pg_stat_statements"],"source_commits":["6b652e6ce"],"source_entry_id":"18.0/changes/192","source_hash":"a71330cbf6ff1fcbcb3577f9497064f4234185cd87242388194c557aabf1ba1b","source_url":"/docs/release/18.0/#RELEASE-18-PGSTATSTATEMENTS","statement_hash":"529743a734ea4d3d2e0ab03ec1c2bc3a516f21292fd3896db229b7e1ee80bdfd","text":"Allow the queries of CREATE TABLE AS and DECLARE to be tracked by pg_stat_statements (Anthonin Bonnefoy) § They are also now assigned query ids.","title":"Allow the queries of CREATE TABLE AS and DECLARE to be tracked by pg_stat_statements","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["dc6851596"],"commit_groups":[["dc6851596"]],"commits":["dc6851596"],"cves":[],"db_id":"d87ff3c638d05d56d3504f36a1d0eb9e","html":"\u003cp\u003eAllow the parameterization of \u003ca href=\"/docs/18/sql-set.html\" title=\"SET\"\u003e\u003cspan\u003eSET\u003c/span\u003e\u003c/a\u003e values in \u003cspan\u003epg_stat_statements\u003c/span\u003e (Greg Sabino Mullane, Michael Paquier) \u003ca href=\"https://postgr.es/c/dc6851596\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis reduces the bloat caused by \u003ccode\u003eSET\u003c/code\u003e statements with differing constants.\u003c/p\u003e","id":"18.0-9feb714b6e408a34","identity_text":"Allow the parameterization of sql-set values in pg_stat_statements (Greg Sabino Mullane, Michael Paquier) This reduces the bloat caused by SET statements with differing constants.","part":"changes","patch_ids":["3d32975392dfbf77a358e6067a48fe4d"],"related_changes":[],"relations":[],"section":"Additional Modules / pg_stat_statements","section_path":["Additional Modules","pg_stat_statements"],"source_commits":["dc6851596"],"source_entry_id":"18.0/changes/193","source_hash":"1f417978794e493fec83127f28bd0ea95e8b299c427563b1296dbcb2150ca0ca","source_url":"/docs/release/18.0/#RELEASE-18-PGSTATSTATEMENTS","statement_hash":"45589530b5dde17afb7b34a69cafc678f86039fa9b52d8c08a42e0052b5b7086","text":"Allow the parameterization of SET values in pg_stat_statements (Greg Sabino Mullane, Michael Paquier) § This reduces the bloat caused by SET statements with differing constants.","title":"Allow the parameterization of SET values in pg_stat_statements","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["cf54a2c00"],"commit_groups":[["cf54a2c00"]],"commits":["cf54a2c00"],"cves":[],"db_id":"823f8d0879e0c04f27c34b7a3b667631","html":"\u003cp\u003eAdd \u003ca href=\"/docs/18/pgstatstatements.html#PGSTATSTATEMENTS-PG-STAT-STATEMENTS\" title=\"F.32.1. The pg_stat_statements View\"\u003e\u003ccode\u003epg_stat_statements\u003c/code\u003e\u003c/a\u003e columns to report parallel activity (Guillaume Lelarge) \u003ca href=\"https://postgr.es/c/cf54a2c00\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe new columns are \u003ccode\u003eparallel_workers_to_launch\u003c/code\u003e and \u003ccode\u003eparallel_workers_launched\u003c/code\u003e.\u003c/p\u003e","id":"18.0-58fe8ed3eb4ac00f","identity_text":"Add pg_stat_statements columns to report parallel activity (Guillaume Lelarge) The new columns are parallel_workers_to_launch and parallel_workers_launched.","part":"changes","patch_ids":["6831774269bf4d573b364772321f1d98"],"related_changes":[],"relations":[],"section":"Additional Modules / pg_stat_statements","section_path":["Additional Modules","pg_stat_statements"],"source_commits":["cf54a2c00"],"source_entry_id":"18.0/changes/194","source_hash":"4bea78cbf69168bd47d9d84472e256b83685ff82c01f4d938e37329c48e8034d","source_url":"/docs/release/18.0/#RELEASE-18-PGSTATSTATEMENTS","statement_hash":"9c17fad8b061e59f13e9c70ddcdc3c5fcd20b2bbfe2878b5ceac9531b5be3eca","text":"Add pg_stat_statements columns to report parallel activity (Guillaume Lelarge) § The new columns are parallel_workers_to_launch and parallel_workers_launched.","title":"Add pg_stat_statements columns to report parallel activity","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["ce5bcc4a9"],"commit_groups":[["ce5bcc4a9"]],"commits":["ce5bcc4a9"],"cves":[],"db_id":"04bb9752bb54f8a586216fc387f41183","html":"\u003cp\u003eAdd \u003ccode\u003epg_stat_statements\u003c/code\u003e.\u003ccode\u003ewal_buffers_full\u003c/code\u003e to report full \u003cacronym\u003eWAL\u003c/acronym\u003e buffers (Bertrand Drouvot) \u003ca href=\"https://postgr.es/c/ce5bcc4a9\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-319957903c0be0f5","identity_text":"Add pg_stat_statements.wal_buffers_full to report full WAL buffers (Bertrand Drouvot)","part":"changes","patch_ids":["b596d0e68f37807e59aa316714895446"],"related_changes":[],"relations":[],"section":"Additional Modules / pg_stat_statements","section_path":["Additional Modules","pg_stat_statements"],"source_commits":["ce5bcc4a9"],"source_entry_id":"18.0/changes/195","source_hash":"00483f0bb6bed3dc52e750abffeaaee664740c6aa8ceda1af850420bab8fdbfa","source_url":"/docs/release/18.0/#RELEASE-18-PGSTATSTATEMENTS","statement_hash":"70c55196e78f23063400ef5243fea51808dbb9887de6fb64c904a32c7882458f","text":"Add pg_stat_statements.wal_buffers_full to report full WAL buffers (Bertrand Drouvot) §","title":"Add pg_stat_statements.wal_buffers_full to report full WAL buffers","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["749a9e20c"],"commit_groups":[["749a9e20c"]],"commits":["749a9e20c"],"cves":[],"db_id":"6d930bd35ba876206f5a9813beccedcf","html":"\u003cp\u003eAdd \u003cspan\u003epgcrypto\u003c/span\u003e algorithms \u003ca href=\"/docs/18/pgcrypto.html#PGCRYPTO-CRYPT-ALGORITHMS\" title=\"Table F.18. Supported Algorithms for crypt()\"\u003e\u003ccode\u003esha256crypt\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"/docs/18/pgcrypto.html#PGCRYPTO-CRYPT-ALGORITHMS\" title=\"Table F.18. Supported Algorithms for crypt()\"\u003e\u003ccode\u003esha512crypt\u003c/code\u003e\u003c/a\u003e (Bernd Helmle) \u003ca href=\"https://postgr.es/c/749a9e20c\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-454d1f7907667b27","identity_text":"Add pgcrypto algorithms sha256crypt and sha512crypt (Bernd Helmle)","part":"changes","patch_ids":["f5cd375f1c18937c407ef70ec720a716"],"related_changes":[],"relations":[],"section":"Additional Modules / pgcrypto","section_path":["Additional Modules","pgcrypto"],"source_commits":["749a9e20c"],"source_entry_id":"18.0/changes/196","source_hash":"80d5466488cbf40745c79ffbf3905ec0e844acdae70f987d6512d4b8d3b4f9ab","source_url":"/docs/release/18.0/#RELEASE-18-PGCRYPTO","statement_hash":"bff6b8e55820215a69430966b55770e950076a2a38845002186f696873fa2bd1","text":"Add pgcrypto algorithms sha256crypt and sha512crypt (Bernd Helmle) §","title":"Add pgcrypto algorithms sha256crypt and sha512crypt","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["9ad1b3d01"],"commit_groups":[["9ad1b3d01"]],"commits":["9ad1b3d01"],"cves":[],"db_id":"ec341ecdfcaabcd1827eb401ea40905d","html":"\u003cp\u003eAdd \u003ca href=\"/docs/18/pgcrypto.html#PGCRYPTO-RAW-ENC-FUNCS\" title=\"F.26.4. Raw Encryption Functions\"\u003e\u003cacronym\u003eCFB\u003c/acronym\u003e\u003c/a\u003e mode to \u003cspan\u003epgcrypto\u003c/span\u003e encryption and decryption (Umar Hayat) \u003ca href=\"https://postgr.es/c/9ad1b3d01\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-9cb3dbf5db925f06","identity_text":"Add CFB mode to pgcrypto encryption and decryption (Umar Hayat)","part":"changes","patch_ids":["b040d33a3888055fc5edf9f0c6e56795"],"related_changes":[],"relations":[],"section":"Additional Modules / pgcrypto","section_path":["Additional Modules","pgcrypto"],"source_commits":["9ad1b3d01"],"source_entry_id":"18.0/changes/197","source_hash":"7f5b08debbba5d1cc71560caa889a862bb5b8108f756e758ad8bc02d4921180a","source_url":"/docs/release/18.0/#RELEASE-18-PGCRYPTO","statement_hash":"7c89f9937951f96c3f497c06864857f8e8c21ba76f5ef791d1eed77d00a71e81","text":"Add CFB mode to pgcrypto encryption and decryption (Umar Hayat) §","title":"Add CFB mode to pgcrypto encryption and decryption","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["924d89a35"],"commit_groups":[["924d89a35"]],"commits":["924d89a35"],"cves":[],"db_id":"861402831b46a55debf94f9e181d24e4","html":"\u003cp\u003eAdd function \u003ca href=\"/docs/18/pgcrypto.html#PGCRYPTO-OPENSSL-SUPPORT-FUNCS\" title=\"F.26.6. OpenSSL Support Functions\"\u003e\u003ccode\u003efips_mode()\u003c/code\u003e\u003c/a\u003e to report the server's \u003cacronym\u003eFIPS\u003c/acronym\u003e mode (Daniel Gustafsson) \u003ca href=\"https://postgr.es/c/924d89a35\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"18.0-e6ffde3f90c7ca5a","identity_text":"Add function fips_mode() to report the server's FIPS mode (Daniel Gustafsson)","part":"changes","patch_ids":["f3552518869c0bbfacbd3fcc442038d8"],"related_changes":[],"relations":[],"section":"Additional Modules / pgcrypto","section_path":["Additional Modules","pgcrypto"],"source_commits":["924d89a35"],"source_entry_id":"18.0/changes/198","source_hash":"6887df5888073525195bf750e494c1f0258185ce6b39a3b9c366aaf87bc467ea","source_url":"/docs/release/18.0/#RELEASE-18-PGCRYPTO","statement_hash":"54d83b9015ab399dec746f14f85c5f46ae4ed4dd02972e94a5ce579ee4817f1d","text":"Add function fips_mode() to report the server's FIPS mode (Daniel Gustafsson) §","title":"Add function fips_mode() to report the server's FIPS mode","variants":[],"version":"18.0"},{"also_in":[],"category":"feature","category_label":"Features","commit_aliases":["035f99cbe"],"commit_groups":[["035f99cbe"]],"commits":["035f99cbe"],"cves":[],"db_id":"85292659fb670a2d9202838e30370170","html":"\u003cp\u003eAdd \u003cspan\u003epgcrypto\u003c/span\u003e server variable \u003ca href=\"/docs/18/pgcrypto.html#PGCRYPTO-CONFIGURATION-PARAMETERS-BUILTIN_CRYPTO_ENABLED\"\u003e\u003ccode\u003ebuiltin_crypto_enabled\u003c/code\u003e\u003c/a\u003e to allow disabling builtin non-\u003cacronym\u003eFIPS\u003c/acronym\u003e mode cryptographic functions (Daniel Gustafsson, Joe Conway) \u003ca href=\"https://postgr.es/c/035f99cbe\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is useful for guaranteeing \u003cacronym\u003eFIPS\u003c/acronym\u003e mode behavior.\u003c/p\u003e","id":"18.0-1c1c15834b2fb0f5","identity_text":"Add pgcrypto server variable builtin_crypto_enabled to allow disabling builtin non-FIPS mode cryptographic functions (Daniel Gustafsson, Joe Conway) This is useful for guaranteeing FIPS mode behavior.","part":"changes","patch_ids":["c996d7a6dfbb6918d1e1c1bdc8763d5d"],"related_changes":[],"relations":[],"section":"Additional Modules / pgcrypto","section_path":["Additional Modules","pgcrypto"],"source_commits":["035f99cbe"],"source_entry_id":"18.0/changes/199","source_hash":"7ec37d9ad093c24c937b540278b9a28ded5495aa79ee7e13b25b399ad32123f6","source_url":"/docs/release/18.0/#RELEASE-18-PGCRYPTO","statement_hash":"9c517ea3b0ae09d9ac23588dcc459bf5530faea31bee9ef47a11255f44c8ee81","text":"Add pgcrypto server variable builtin_crypto_enabled to allow disabling builtin non-FIPS mode cryptographic functions (Daniel Gustafsson, Joe Conway) § This is useful for guaranteeing FIPS mode behavior.","title":"Add pgcrypto server variable builtin_crypto_enabled to allow disabling builtin non-FIPS mode cryptographic functions","variants":[],"version":"18.0"}],"entry_count":210,"eol":"2030-11-14","eol_date":"2030-11-14","label":"18.0","major":"18","manual":"18","manual_build":"18.6","manual_url":"/docs/18/release-18.html","migration_html":"\u003cp\u003eA dump/restore using \u003ca href=\"/docs/18/app-pg-dumpall.html\" title=\"pg_dumpall\"\u003e\u003cspan\u003e\u003cspan\u003epg_dumpall\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e or use of \u003ca href=\"/docs/18/pgupgrade.html\" title=\"pg_upgrade\"\u003e\u003cspan\u003e\u003cspan\u003epg_upgrade\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e or logical replication is required for those wishing to migrate data from any previous release. See \u003ca href=\"/docs/18/upgrading.html\" title=\"18.6. Upgrading a PostgreSQL Cluster\"\u003eSection 18.6\u003c/a\u003e for general information on migrating to new major releases.\u003c/p\u003e\n\u003cp\u003eVersion 18 contains a number of changes that may affect compatibility with previous releases. Observe the following incompatibilities:\u003c/p\u003e\n\u003cdiv\u003e\n\u003c/div\u003e","minor":0,"placeholder":false,"source_as_of":"","source_url":"/docs/release/18.0/","status":"stable","status_label":"Supported","support_days":1463,"supported":true,"version":"18.0"}],"mode":"release","release_count":1,"remaining_cves":[],"security_as_of":"2026-09-26","security_regressions":[],"source_as_of":"2026-09-26","stats":[{"count":210,"key":"all","label":"All changes"},{"count":188,"key":"feature","label":"Features"},{"count":1,"key":"bugfix","label":"Bug fixes"},{"count":0,"key":"security","label":"Security"},{"count":10,"key":"performance","label":"Performance"},{"count":11,"key":"compatibility","label":"Compatibility"},{"count":0,"key":"improvement","label":"Improvements"}],"to_release":{"age_days":413,"build":"18.0","changes_count":199,"compatibility_count":11,"content_hash":"18846b73e34c6c5402520e411e973c0a253591050c63dbc366a66ce751e0aeaa","date":"2025-09-25","date_text":"2025-09-25","doc_git":"","doc_loaded_at":"2026-09-25T02:22:44.760693","entry_count":210,"eol":"2030-11-14","eol_date":"2030-11-14","label":"18.0","major":"18","manual":"18","manual_build":"18.6","manual_url":"/docs/18/release-18.html","migration_html":"\u003cp\u003eA dump/restore using \u003ca href=\"/docs/18/app-pg-dumpall.html\" title=\"pg_dumpall\"\u003e\u003cspan\u003e\u003cspan\u003epg_dumpall\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e or use of \u003ca href=\"/docs/18/pgupgrade.html\" title=\"pg_upgrade\"\u003e\u003cspan\u003e\u003cspan\u003epg_upgrade\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e or logical replication is required for those wishing to migrate data from any previous release. See \u003ca href=\"/docs/18/upgrading.html\" title=\"18.6. Upgrading a PostgreSQL Cluster\"\u003eSection 18.6\u003c/a\u003e for general information on migrating to new major releases.\u003c/p\u003e\n\u003cp\u003eVersion 18 contains a number of changes that may affect compatibility with previous releases. Observe the following incompatibilities:\u003c/p\u003e\n\u003cdiv\u003e\n\u003c/div\u003e","minor":0,"placeholder":false,"source_as_of":"","source_url":"/docs/release/18.0/","status":"stable","status_label":"Supported","support_days":1463,"supported":true,"version":"18.0"},"total":210,"warnings":[]}
