Обсуждение: NegotiateProtocolVersion description
In the docs (54.7. Message Formats) NegotiateProtocolVersion message's third field is described as below: "Newest minor protocol version supported by the server for the major protocol version requested by the client. " From the description initially I thought the field value is minor protocol version (e.g. 0, 2). However I realized that it's actually protocol major version plus protocol minor version, like StartupMessage. Probably my misunderstanding is due to my limited English ability, but I just want to make sure that the current description definitely matches what the field actually represents. Best regards, -- Tatsuo Ishii SRA OSS K.K. English: http://www.sraoss.co.jp/index_en/ Japanese:http://www.sraoss.co.jp
On Saturday, July 5, 2025, Tatsuo Ishii <ishii@postgresql.org> wrote:
In the docs (54.7. Message Formats) NegotiateProtocolVersion message's
third field is described as below:
"Newest minor protocol version supported by the server for the major
protocol version requested by the client. "
From the description initially I thought the field value is minor
protocol version (e.g. 0, 2). However I realized that it's actually
protocol major version plus protocol minor version, like
StartupMessage. Probably my misunderstanding is due to my limited
English ability, but I just want to make sure that the current
description definitely matches what the field actually represents.
Add an example? I like the wording as-is, though I can see your point. I wouldn’t expect the returned value to be a fragment of a version in this context so minor just emphasizes that the client is applying a filter on the major version it supports. I’d be ok with removing “minor” altogether.
David J.
On 2025/07/05 19:30, Tatsuo Ishii wrote: > In the docs (54.7. Message Formats) NegotiateProtocolVersion message's > third field is described as below: > > "Newest minor protocol version supported by the server for the major > protocol version requested by the client. " > > From the description initially I thought the field value is minor > protocol version (e.g. 0, 2). However I realized that it's actually > protocol major version plus protocol minor version, like > StartupMessage. Probably my misunderstanding is due to my limited > English ability, but I just want to make sure that the current > description definitely matches what the field actually represents. A similar issue was discussed, and a patch was proposed in [1]. That thread might be worth reading. Regards, [1] https://postgr.es/m/CADK3HH+KkTFkv3zhJ9Koqmkyj=n2XG=CDp-MxAhMOPoezaQwoQ@mail.gmail.com -- Fujii Masao NTT DATA Japan Corporation
> Add an example? I like the wording as-is, though I can see your point. I > wouldn’t expect the returned value to be a fragment of a version in this > context so minor just emphasizes that the client is applying a filter on > the major version it supports. I’d be ok with removing “minor” altogether. Probably not necessary to remove "minor". It seems our document consistently uses "minor protocol version" to mean the whole protocol version, not a fragment. Followings are my understanding; major version (number): The most significant 16 bits of the protocol version (i.e. 3) minor version (number): The least significant 16 bits of the protocol version (i.e. 2) major protocol version: The major version part of the protocol version. Only used in NegotiateProtocolVersion. minor protocol version: The whole protocol version including minor version (3.2) Best regards, -- Tatsuo Ishii SRA OSS K.K. English: http://www.sraoss.co.jp/index_en/ Japanese:http://www.sraoss.co.jp
> A similar issue was discussed, and a patch was proposed in [1]. > That thread might be worth reading. Thanks. I will take a look at it. Best regards, -- Tatsuo Ishii SRA OSS K.K. English: http://www.sraoss.co.jp/index_en/ Japanese:http://www.sraoss.co.jp