Thread
-
[PATCH] Correct the version sent in protocol negotiation
Ning Sun <classicning@gmail.com> — 2026-06-07T02:00:09Z
Our protocol doc describes protocol negotiation message will send latest minor version. However that field is a 4-byte one. The actual implementation sends full version including the major part: static void SendNegotiateProtocolVersion(List *unrecognized_protocol_options) { StringInfoData buf; ListCell *lc; pq_beginmessage(&buf, PqMsg_NegotiateProtocolVersion); pq_sendint32(&buf, FrontendProtocol); pq_sendint32(&buf, list_length(unrecognized_protocol_options)); foreach(lc, unrecognized_protocol_options) pq_sendstring(&buf, lfirst(lc)); pq_endmessage(&buf); /* no need to flush, some other message will follow */ } The patch included just clarifies this behavior by removing "minor" from "newest minor version". -
Re: [PATCH] Correct the version sent in protocol negotiation
Laurenz Albe <laurenz.albe@cybertec.at> — 2026-06-07T05:06:55Z
On Sun, 2026-06-07 at 10:00 +0800, Ning Sun wrote: > Our protocol doc describes protocol negotiation message will send latest > minor version. However that field is a 4-byte one. The actual > implementation sends full version including the major part: > > The patch included just clarifies this behavior by removing "minor" from > "newest minor version". To my understanding, the "minor version" is the entire version *including* the last number, like 18.4 (and not only .4). In this, I seem to be in agreement with https://www.postgresql.org/support/versioning/ To me, removing the "minor" makes the text less clear. If we change that at all, perhaps a wording like "the full version, including the minor release" would remove any ambiguity. Yours, Laurenz Albe
-
Re: [PATCH] Correct the version sent in protocol negotiation
Ning Sun <classicning@gmail.com> — 2026-06-07T07:40:37Z
I see. The "minor version" has its own meaning in postgres context. That makes sense. Thank you for clarification, Laurenz. On 07/06/2026 13:06, Laurenz Albe wrote: > On Sun, 2026-06-07 at 10:00 +0800, Ning Sun wrote: >> Our protocol doc describes protocol negotiation message will send latest >> minor version. However that field is a 4-byte one. The actual >> implementation sends full version including the major part: >> >> The patch included just clarifies this behavior by removing "minor" from >> "newest minor version". > To my understanding, the "minor version" is the entire version *including* > the last number, like 18.4 (and not only .4). > > In this, I seem to be in agreement with > https://www.postgresql.org/support/versioning/ > > To me, removing the "minor" makes the text less clear. If we change that > at all, perhaps a wording like "the full version, including the minor > release" would remove any ambiguity. > > Yours, > Laurenz Albe