Re: pgsql: libpq: Grease the protocol by default

Andrew Dunstan <andrew@dunslane.net>

From: Andrew Dunstan <andrew@dunslane.net>
To: Tom Lane <tgl@sss.pgh.pa.us>, Jacob Champion <jacob.champion@enterprisedb.com>
Cc: Jelte Fennema-Nio <postgres@jeltef.nl>, pgsql-hackers@lists.postgresql.org
Date: 2026-02-24T15:55:20Z
Lists: pgsql-hackers
On 2026-02-23 Mo 9:08 PM, Tom Lane wrote:
> 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.)
>
> 			


I am not worried about old minor releases. I am currently testing a 
patch with similar intent to yours.


cheers


andrew

--
Andrew Dunstan
EDB:https://www.enterprisedb.com

Commits

  1. pg_upgrade: Use max_protocol_version=3.0 for older servers

  2. libpq: Grease the protocol by default

  3. libpq: Prepare for protocol grease during 19beta