public inbox for [email protected]
help / color / mirror / Atom feedFrom: Tom Lane <[email protected]>
To: Jacob Champion <[email protected]>
Cc: Jelte Fennema-Nio <[email protected]>
Cc: [email protected]
Cc: Andrew Dunstan <[email protected]>
Subject: Re: pgsql: libpq: Grease the protocol by default
Date: Mon, 23 Feb 2026 21:08:56 -0500
Message-ID: <[email protected]> (raw)
In-Reply-To: <CAOYmi+kC3AN0QJKT0OunHCmi4UU7-15eu7w-DY5ckOgHiQE1QA@mail.gmail.com>
References: <[email protected]>
<CAOYmi+=4QhCjssfNEoZVK8LPtWxnfkwT5p-PAeoxtG9gpNjqOQ@mail.gmail.com>
<[email protected]>
<CAOYmi+k8ENYkErqSEYEqW39YWPfe_ii7g5Acm1c9asNuRMriNg@mail.gmail.com>
<[email protected]>
<CAOYmi+mtFBsB2zePSvbpa-2Zb-+V5bov_t2BzkGH7vfKX0ny_w@mail.gmail.com>
<[email protected]>
<CAOYmi+kC3AN0QJKT0OunHCmi4UU7-15eu7w-DY5ckOgHiQE1QA@mail.gmail.com>
Jacob Champion <[email protected]> writes:
> On Mon, Feb 23, 2026 at 4:45 PM Tom Lane <[email protected]> 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
Attachments:
[text/x-diff] cross-version.patch (931B, 2-cross-version.patch)
download | inline diff:
--- PGBuild/Modules/TestUpgradeXversion.pm~ 2025-11-25 07:47:25.000000000 -0500
+++ PGBuild/Modules/TestUpgradeXversion.pm 2026-02-23 20:57:31.640149574 -0500
@@ -483,9 +483,17 @@ sub test_upgrade ## no critic (Subrou
$dump_opts .= ' --extra-float-digits=0';
}
+ # with very old servers we must restrict the protocol version.
+ my $maxpversion = "";
+ if ( ($this_branch eq 'HEAD' || $this_branch gt 'REL_18_STABLE')
+ && ($oversion ne 'HEAD' && $oversion le 'REL_9_2_STABLE'))
+ {
+ $maxpversion = '-d max_protocol_version=3.0';
+ }
+
# use the NEW pg_dumpall so we're comparing apples with apples.
setinstenv($self, "$installdir", $save_env);
- system( qq{"$installdir/bin/pg_dumpall" $dump_opts -p $sport -f }
+ system( qq{"$installdir/bin/pg_dumpall" $dump_opts $maxpversion -p $sport -f }
. qq{"$upgrade_loc/origin-$oversion.sql" }
. qq{> "$upgrade_loc/$oversion-dump1.log" 2>&1});
return if $?;
view thread (27+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected], [email protected], [email protected], [email protected]
Subject: Re: pgsql: libpq: Grease the protocol by default
In-Reply-To: <[email protected]>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox