On Sun, 3 Sept 2023 at 08:24, Pavel Stehule <pavel.stehule@gmail.com> wrote:
> My personal feeling from this area is that the protocol design is done, but it is not implemented on libpq level. My
feelingscan be wrong. The protocol number is hardcoded in libpq, so I cannot change it from the client side.
No, I agree you're right the client side code to fall back to older
versions is not implemented. But that seems fairly simple to do. We
can change pqGetNegotiateProtocolVersion3 its behaviour. That function
should change conn->pversion to the server provided version if it's
lower than the client version (as long as the server provided version
is 3.0 or larger). And then we should return an error when calling
PQlinkParameterStatus/PQunlinkParameterStatus if the pversion is not
high enough.