Re: Correct documentation for protocol version - Mailing list pgsql-hackers

From Fujii Masao
Subject Re: Correct documentation for protocol version
Date
Msg-id 0bfdd320-92e8-48a1-a1be-82c24918630c@oss.nttdata.com
Whole thread Raw
In response to Re: Correct documentation for protocol version  (Dave Cramer <davecramer@gmail.com>)
Responses Re: Correct documentation for protocol version
List pgsql-hackers

On 2025/04/10 23:40, Dave Cramer wrote:
> 
> On Thu, 10 Apr 2025 at 09:54, Fujii Masao <masao.fujii@oss.nttdata.com <mailto:masao.fujii@oss.nttdata.com>> wrote:
> 
> 
> 
>     On 2025/04/10 18:52, Dave Cramer wrote:
>      > Greetings,
>      >
>      > The current docs say that if a client asks for a protocol that the backend doesn't support, it will return the
newest minorversion.
https://www.postgresql.org/docs/current/protocol-message-formats.html#PROTOCOL-MESSAGE-FORMATS-NEGOTIATEPROTOCOLVERSION
<https://www.postgresql.org/docs/current/protocol-message-formats.html#PROTOCOL-MESSAGE-FORMATS-NEGOTIATEPROTOCOLVERSION>
<https://www.postgresql.org/docs/current/protocol-message-formats.html#PROTOCOL-MESSAGE-FORMATS-NEGOTIATEPROTOCOLVERSION
<https://www.postgresql.org/docs/current/protocol-message-formats.html#PROTOCOL-MESSAGE-FORMATS-NEGOTIATEPROTOCOLVERSION>>
>      >
>      > However that isn't what it returns. It actually returns the entire newest protocol that it supports. Attached
isa patch to fix the docs.
 
> 
>     As far as I read the code, the server returns the protocol version requested by
>     the client if it's less than or equal to the latest version the server supports.
>     Otherwise, it returns the latest supported version. So the proposed description
>     doesn't seem accurate either, does it?
> 
> I've added a note as to when this is sent. AFAICT through testing and the fact that the pgjdbc driver has never
handledthis message
 
> I'm pretty sure it only sends this message if the requested protocol is not equal to the protocol the server
supports.

No, the message is also sent when the client requests protocol options that
the server doesn't recognize. In that case, if the client requests an older
protocol version along with unknown options, the server responds with
the requested protocol version, not the latest one.


>     +         Major is in the upper 16 bits and the lower in the low 16 bits.
> 
>     To match the style of similar descriptions, how about rephrasing it as:
>     "The most significant 16 bits are the major version number, and the least
>     significant 16 bits are the minor version number”?
> 
> Done in new patch attached

Thanks!

Regards,

-- 
Fujii Masao
Advanced Computing Technology Center
Research and Development Headquarters
NTT DATA CORPORATION




pgsql-hackers by date:

Previous
From: Jacob Champion
Date:
Subject: Re: Correct documentation for protocol version
Next
From: Xuneng Zhou
Date:
Subject: Re: Proposal: Limitations of palloc inside checkpointer