Do not hardcode PG_PROTOCOL_LATEST in NegotiateProtocolVersion
authorRobert Haas <rhaas@postgresql.org>
Thu, 15 Aug 2024 14:44:15 +0000 (10:44 -0400)
committerRobert Haas <rhaas@postgresql.org>
Thu, 15 Aug 2024 14:44:15 +0000 (10:44 -0400)
commit516b87502dc1f99adb5126aa70cc796d53648c92
tree3ebdbd34cb1ed9bd9fdf0c04468cd5f1ee09b42d
parent8dc28d7eb868b6ce5a51614628bf46fc63c7e90c
Do not hardcode PG_PROTOCOL_LATEST in NegotiateProtocolVersion

We shouldn't ask the client to use a protocol version later than the
one that they requested. To avoid that, if the client requests a
version newer than the latest one we support, set FrontendProtocol
to the latest version we support, not the requested version. Then,
use that value when building the NegotiateProtocolVersion message.
(It seems good on general principle to avoid setting FrontendProtocol
to a version we don't support, anyway.)

None of this really matters right now, because we only support a
single protocol version, but if that ever changes, we'll need this.

Jelte Fennema-Nio, reviewed by me and incorporating some of my
proposed wording

Discussion: https://postgr.es/m/CAGECzQTyXDNtMXdq2L-Wp=OvOCPa07r6+U_MGb==h90MrfT+fQ@mail.gmail.com
src/backend/tcop/backend_startup.c