Re: pgsql: libpq: Grease the protocol by default
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Jacob Champion <jacob.champion@enterprisedb.com>
Cc: Jelte Fennema-Nio <postgres@jeltef.nl>,
pgsql-hackers@lists.postgresql.org,
Andrew Dunstan <andrew@dunslane.net>
Date: 2026-02-24T02:08:56Z
Lists: pgsql-hackers
Attachments
- cross-version.patch (text/x-diff) patch
Jacob Champion <jacob.champion@enterprisedb.com> writes: > On Mon, Feb 23, 2026 at 4:45 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: >> Also: I was initially baffled why you thought this needs >> back-patching, but I guess you have one eye on packagers like >> Debian who think they can make older versions use newer libpq.so. > Right. Actually, that is going to be harder than you thought, because libpq before v18 will spit up on connection option "max_protocol_version". This patch will not work as-is for back-patching unless we care to also back-patch the addition of that option, which I'd be inclined to resist. Fortunately, we long ago had the foresight to invent PQlibVersion, so you could make addition of the extra option conditional on PQlibVersion(conn) >= 180000 in branches before 18. > Hmmm, looks like the -dump1.log output is actually from *before* > pg_upgrade actually runs: Yeah, I came to the same conclusion. I got a clean BF run using your patch together with the attached patch for the BF client. (In this patch, I did not worry about scenarios involving old minor releases. If Andrew is excited about that case he can extend the version-comparison logic.) regards, tom lane
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