On Thu, 8 Jan 2026 at 03:51, Tom Lane <[email protected]> wrote:
> I'm pretty bemused by this entire discussion.  We have a perfectly
> good design for handling new protocol features without any hard
> protocol break, so I don't understand why people are insisting on
> doing things incompatibly when they could be doing them compatibly.

The whole point of minor protocol versions is that they don't do a
hard protocol break. 3.2 will not be a hard protocol break, 3.3 won't
be and neither will 3.4

> I quote from Robert's commit ae65f6066 (the same one that invented
> NegotiateProtocolVersion):

The section before is just as worth quoting, because it makes clear
that minor protocol versions are not a hard protocol break.

    Previously, any attempt to request a 3.x protocol version other than
    3.0 would lead to a hard connection failure, which made the minor
    protocol version really no different from the major protocol version
    and precluded gentle protocol version breaks.  Instead, when the
    client requests a 3.x protocol version where x is greater than 0, send
    the new NegotiateProtocolVersion message to convey that we support
    only 3.0.  This makes it possible to introduce new minor protocol
    versions without requiring a connection retry when the server is
    older.

> I think that the right way forward is that the protocol version
> stays at 3.2 for several decades more, and we implement requests for
> individual protocol-level features through the "_pq_." mechanism.

Is the misunderstanding of 3.3 being a hard protocol break the only
reason you think that? Or do you have some more reasons?


Reply via email to