Re: pgsql: libpq: Grease the protocol by default
Jacob Champion <jacob.champion@enterprisedb.com>
From: Jacob Champion <jacob.champion@enterprisedb.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Jelte Fennema-Nio <postgres@jeltef.nl>,
pgsql-hackers@lists.postgresql.org, Andrew Dunstan <andrew@dunslane.net>,
Nathan Bossart <nathandbossart@gmail.com>
Date: 2026-02-24T20:29:02Z
Lists: pgsql-hackers
Attachments
- v2-0001-pg_upgrade-Use-max_protocol_version-3.0-for-older.patch (application/octet-stream) patch v2-0001
- v2-0001-pg_upgrade-Use-max_protocol_version-3.0-for-older.18.patch (application/octet-stream) patch v2-0001
- v2-0001-pg_upgrade-Use-max_protocol_version-3.0-for-older.17.patch (application/octet-stream) patch v2-0001
- v2-0001-pg_upgrade-Use-max_protocol_version-3.0-for-older.16.patch (application/octet-stream) patch v2-0001
- v2-0001-pg_upgrade-Use-max_protocol_version-3.0-for-older.15.patch (application/octet-stream) patch v2-0001
- v2-0001-pg_upgrade-Use-max_protocol_version-3.0-for-older.14.patch (application/octet-stream) patch v2-0001
On Tue, Feb 24, 2026 at 10:58 AM Jacob Champion <jacob.champion@enterprisedb.com> wrote: > We do store (the major version part of) `pg_ctl --version` at some > point, which we could improve upon, but I agree that adding additional > complexity here doesn't actually give us any benefit. Okay, here are the patches I propose. The ones for 18-HEAD check for PG10 and below, and 14-17 additionally check that libpq >= 18, before adding max_protocol_version=3.0. I smoke-tested upgrades from 9.2, 10.1, and 11.0 for all six branches, and then re-ran that test matrix with pg_upgrade linked against a greased libpq. --Jacob
Commits
-
pg_upgrade: Use max_protocol_version=3.0 for older servers
- c47744ede01c 14.23 landed
- e726620d208e 15.18 landed
- a38ed212ff23 16.14 landed
- ad7fc3f1f83f 17.10 landed
- 1b2773179f31 18.4 landed
- a60a103386a1 19 (unreleased) landed
-
libpq: Grease the protocol by default
- 4966bd3ed95e 19 (unreleased) cited
-
libpq: Prepare for protocol grease during 19beta
- d8d7c5dc8f74 19 (unreleased) cited